Asp.net IIS生成相同的会话。会话ID

Asp.net IIS生成相同的会话。会话ID,asp.net,iis,session,web-applications,authentication,Asp.net,Iis,Session,Web Applications,Authentication,我在IIS7上部署了两个web应用程序 问题是,如果我使用相同的浏览器(不同的选项卡)请求两个应用程序,IIS将生成相同的Session.SessionID 这会导致ASP.Net用户身份验证出现一些问题,这是由于彼此之间存在重叠,并且每当用户登录到另一个站点时,“user.Identity.IsAuthenticated”标志返回false。只要用户在其中一个站点上工作,它就可以正常工作 请帮助我,我似乎找不到原因,我的意思是会话是特定于应用程序的,所以为什么来自一个web应用程序的sessi

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

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

这会导致ASP.Net用户身份验证出现一些问题,这是由于彼此之间存在重叠,并且每当用户登录到另一个站点时,“user.Identity.IsAuthenticated”标志返回false。只要用户在其中一个站点上工作,它就可以正常工作

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

谢谢

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


问题是您的浏览器对这些应用程序的处理方式相同。ASP.NET中的会话由会话cookie实现。它们需要有不同的网站名称,这样它们就不会共享同一个会话


更新 这就是会话cookie的工作原理


但一种解决方案是通过
mysite.com/1
mysite.com/2
访问它们。我认为这也应该起作用。

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

每个应用程序是否在单独的IIS应用程序中运行?如果是,则会话将是单独的,因为会话的作用域是AppDomain。如果它们位于同一IIS应用程序中,则它们将加载在同一AppDomain中,并将共享会话


在同一浏览器会话中(无论是否使用选项卡),将发送相同的会话cookie。

当我更新时,您需要为它们指定不同的网站名称。使用不同的网站名访问它们,例如
app1.mysite.com
app2.mysite.com
网站名,就像在完全不同的域名中一样?像www.x.com和www.x.com/2一样不起作用吗?不,它不会起作用,尽管它在某些条件下可以起作用。已为网站设置会话cookie。你只需要用fiddler检查Cookie,看看有什么值。它起作用了,我用localhost和my-pc试了一个。有没有办法避免这种情况,我不想更改域名或添加子域。我尝试创建不同的应用程序池,但没有帮助。这就是会话在ASP.NET或任何其他web技术中的工作方式。但是如果是内部网,设置别名很容易。对于互联网来说,这应该是相当容易的。但是请看我的新更新。嗨,我有一个问题,因为两个网站都是在同一个IIS应用程序下定义的。是否可以通过在web.config中指定不同的sessionName或指定不同的机器密钥来隔离这两个网站的会话?