会话管理

Nav*_*nan 0 asp.net asp-classic

我正在为我的登录页面使用会话,该会话将在会话中保存userId.如果使用相同的系统和相同的浏览器但使用浏览器的单独选项卡记录两个不同的用户,则userid的会话值将重置为最后登录的用户.为什么?

dot*_*ner 6

sessionID浏览器只会为域保存一个(在cookie中),在后续的回发中将其返回给服务器以识别会话.

如果你打开另一个标签并以其他人身份登录,那么最新的sessionID将覆盖之前的..

所以它不可能在同一个浏览器上有不同的登录...但是使用不同的浏览器(不是同一浏览器的另一个实例)


Dar*_*rov 5

如果您使用cookie跟踪经过身份验证的用户,则无法实现此目的,因为Cookie在浏览器选项卡之间共享.大多数网站也是如此.以Gmail为例:您使用一个帐户登录,然后打开一个新标签,并且您将自动使用同一个用户登录,因为共享了Cookie.

为了实现您的要求,您基本上必须更改跟踪经过身份验证的用户的方式.你不应该再使用cookies.

我想到了两种可能性:

  • 在每个包含会话ID的页面上使用隐藏字段
  • 将会话ID附加到所有请求的查询字符串