具有传统ASP的Web场中的会话共享

时间:2010-11-16 22:38:24

标签: .net asp.net session architecture asp-classic

我们处于负载均衡的环境中,负载均衡器是www.domain.com,我们有4台服务器使用.NETServer的SQLServer会话进行负载均衡... www1,www2等。

问题是我们还有一些遗留的ASP内容,一旦我们在负载均衡器上关闭Sticky IP,我们就需要继续工作。所以我们的想法是在需要ASP的少数几个地方,我们会将用户粘贴到登录决定的特定服务器上。

例如。

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

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

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

感谢任何帮助,我希望我能清楚地传达这个问题。

1 个答案:

答案 0 :(得分:0)

您可以使用'domain.com'作为会话Cookie的域,而不是'www.domain.com',因此可以读取Cookie来自www1.domain.com,www2.domain.com等。

在web.config上:

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