在我的Web应用程序中,我使用了asp Login控件来方便登录过程。我注意到如果我在浏览器中打开网站并登录,然后打开另一个浏览器并转到该网站,则第二个浏览器显示我已经登录,即使我没有使用该浏览器登录。我注意到其他一些网站(例如我银行的网络访问)以这种方式工作,但对我来说仍然很奇怪。我不确定它是不是坏,但它很奇怪。
这种行为不好吗?
我还注意到,如果我关闭所有浏览器,然后打开一个新浏览器并转到该网站,我就不会登录。
答案 0 :(得分:3)
这是因为这些网站使用会话cookie。如果您同时打开不同的 brwosers,例如FireFox,Opera,Chrome和IE,则必须单独登录所有浏览器。但是,当重新使用相同的浏览器应用程序时,这通常不会产生具有自己的会话数据的新进程,而是重新使用已经打开的浏览器。
答案 1 :(得分:1)
如果您使用的是支持多标签会话的浏览器,例如IE7 +,Firefox等,您会发现,如果您在多个选项卡中打开相同的ASP.NET网站,则每个选项卡将共享相同的身份验证凭据。这是因为会话ID适用于浏览器实例,而不是选项卡实例,因此如果用户登录1选项卡,然后打开另一个选项卡到网站,他们将不必提供两次凭据。
我认为这种行为并不容易。您可以选择使用cookie“munging”,在URL上存储表单身份验证票证,但这似乎是一个安全POV的坏主意。
答案 2 :(得分:1)
Lucero和pmarflee都是正确的。
提供更多信息:
Firefox将在标签页和所有浏览器实例之间共享会话
IE 8还将在选项卡和所有浏览器实例之间共享会话
IE 7共享选项卡之间的会话,但不跨实例
IE 6不跨实例共享会话
我不确定Opera,Chrome或Safari如何处理会话。