在具有经典ASP的Web服务器场中进行会话共享

问题描述:

我们处于负载平衡环境中,负载平衡器是www.domain.com,我们有4台服务器使用SQL Server会话为.NET进行负载均衡... www1 ,www2等在具有经典ASP的Web服务器场中进行会话共享

问题是,我们也有一些传统的ASP东西,我们需要继续工作,一旦我们关闭负载平衡器上的粘滞IP。所以我们的想法是在几个需要ASP的地方,我们会把用户粘到一个特定的服务器上,这个服务器已经决定登录了。

例如。

1)用户登录到.NET站点
2).NET站点找出哪些服务器处理登录请求,并将ASP身份验证写入该服务器。
3)服务器名称存储在变量
4)任何时候用户访问ASP,我们使用服务器名称变量,以确保他/她最终在他/她的身份验证和会话的服务器。

问题是,由于实际的登录请求仅限于负载平衡器,因此当我们将用户指向www3.domain.com/blah.asp时,会话不在身边,因为它与www.domain不同.COM。

所以我认为我们正在寻找某种方式来跨域分享会话,但我想有点麻烦。

任何帮助表示赞赏,我希望我明确表达了问题。

你可以为你的会话cookie的“domain.com”,而不是“www.domain.com”的域使用,因此该cookie可以从www1.domain.com,WWW2读取。 domain.com等

在web.config中:

<authentication mode="Forms"> 
    <forms path="/" domain="domain.com" ..... /> 
</authentication> 
+0

谢谢,这是一个很好的开始!我们基本上一直试图复制这个与定制解决方案做的事情,D'哦!也就是说,我们的网站是全球性的,那么是否有办法处理.com,.co.uk等?也许是通配符? – 2010-11-19 17:49:59

+0

@ Rco8786如果您的完整url更改太复杂了,我认为最好提出一个新问题,总体思路是使用iframe或类似的东西,您可以从基本站点登录并将其用于所有用户。 – Aristos 2010-11-20 09:27:28