ASP.Net Forms身份验证cookie跨会话传递

时间:2013-10-04 03:20:53

标签: asp.net session cookies formsauthentication

我在ASP.Net中开发相当新,我已经搜索了高低分辨率,但无济于事。我使用表单身份验证来验证用户,当我使用用户A登录时,我放弃当前会话,生成新的会话cookie / id并重定向到我的内容页面,一切都按计划运行。但是,当我打开新的浏览器窗口并导航到登录屏幕,从而启动新会话时,用户A的身份验证cookie将自动传递到此会话,并且是请求cookie集合的一部分。更糟糕的是,当我实际以用户B身份登录并获得新的身份验证cookie然后刷新会话A的浏览器窗口时,它现在具有用户B的身份验证cookie。

我不知道为什么会这样。我认为浏览器(IE9)正在缓存身份验证cookie,因为响应标头集合被设置为缓存控制“私有”,即使我在我的代码隐藏中专门设置了Response.Cache.SetCacheability(“no-cache”)对于所有页面。然后我认为这可能是一个线程问题。

非常感谢任何有关为何发生这种情况的见解,谢谢。

2 个答案:

答案 0 :(得分:1)

尝试使用Chrome和IE等不同的浏览器。因为浏览器共享相同的cookie和临时文件甚至在新窗口中打开。如果您尝试使用gmail.com或live.com,则会出现上述情况。

答案 1 :(得分:0)

检查您的web.config文件以获取会话设置。

查看以下链接:

http://msdn.microsoft.com/en-us/library/system.web.security.formsauthentication.enablecrossappredirects.aspx