0

我对在 ASP.Net 中进行开发相当陌生,并且我一直在寻找解决这个问题的方法,但无济于事。我正在使用表单身份验证对用户进行身份验证,当我使用用户 A 登录时,我放弃了当前会话,生成一个新的会话 cookie/id 并重定向到我的内容页面,一切都按计划进行。但是,当我打开一个新的浏览器窗口并导航到登录屏幕,从而启动一个新会话时,用户 A 的身份验证 cookie 会自动传递给此会话,并且是请求 cookie 集合的一部分。更糟糕的是,当我以用户 B 的身份实际登录并获取新的身份验证 cookie 然后刷新会话 A 的浏览器窗口时,它现在具有用户 B 的身份验证 cookie。

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

非常感谢您对为什么会发生这种情况的任何见解,谢谢。

4

2 回答 2

1

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

于 2013-10-04T04:31:06.987 回答
0

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

查看以下链接:

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

于 2013-10-04T05:01:26.247 回答