IIS生成相同的Session.SessionID

时间:2011-05-03 11:15:03

标签: asp.net iis session web-applications authentication

我在IIS7上部署了两个Web应用程序。

问题是,如果我使用相同的浏览器(不同的选项卡)请求两个应用程序,IIS正在生成相同的Session.SessionID。

这会导致ASP.Net用户身份验证出现问题,每次用户登录到其他站点时,它们之间的重叠程度如何,并且“User.Identity.IsAuthenticated”标志会返回false。只要用户在其中一个站点上工作,它就可以正常工作。

请帮帮我,我似乎无法找到原因,我的意思是会话是特定于应用程序的,所以为什么来自一个Web应用程序的sessionID与另一个是冲突的。

谢谢

3 个答案:

答案 0 :(得分:3)

它们在同一个应用程序池中运行。只需分开应用程序池。


问题是您的浏览器正在对这些应用程序进行相同处理。 ASP.NET中的会话由会话cookie 实现。这些需要不同的网站名称,以便它们不共享同一会话。


更新

这是会话cookie的工作方式。

但有一种解决方案是以mysite.com/1mysite.com/2的形式访问它们。我相信也应该有用。

答案 1 :(得分:0)

您是否检查了应用程序池,如果要隔离Web应用程序,则应定义不同的应用程序池。

答案 2 :(得分:0)

每个应用程序是否在单独的IIS应用程序中运行?如果是,那么会话将是独立的,因为Session的范围限定为AppDomain。如果它们位于同一IIS应用程序中,则它们将加载到同一AppDomain中,并将共享Session。

在同一个浏览器会话中(无论使用标签),都会发送相同的会话cookie。