可能重复:
如何在会话中存储数据,以便它也适用于同时登录
我在会话中存储信息,我可以为单个用户检索相同的信息。当用户 2 从同一台机器上的同一浏览器(例如 chrome)登录时,问题就开始了。第二个登录用户,覆盖第一个用户的会话信息。
因为浏览器是创建相同的 sessionid 。
所以请告诉我停止用户 2 登录的最佳方法是什么,如果他带有相同的 SessionID?
意味着我的问题是我们可以根据 SessionID 停止用户吗?
可能重复:
如何在会话中存储数据,以便它也适用于同时登录
我在会话中存储信息,我可以为单个用户检索相同的信息。当用户 2 从同一台机器上的同一浏览器(例如 chrome)登录时,问题就开始了。第二个登录用户,覆盖第一个用户的会话信息。
因为浏览器是创建相同的 sessionid 。
所以请告诉我停止用户 2 登录的最佳方法是什么,如果他带有相同的 SessionID?
意味着我的问题是我们可以根据 SessionID 停止用户吗?
请提供有关您正在使用的技术的更多详细信息……例如应用程序服务器,应用程序的框架。
仅供参考,浏览器选项卡共享会话数据,因此两个使用同一浏览器从同一台机器登录到应用程序的用户只有在使用两个不同的浏览器窗口而不是两个不同的选项卡时才能拥有单独的会话 ID。
需要更多细节才能给出进一步的答案。
这是可以做到的,但需要你付出很多努力。要走的路是重写 URL。
示例:请求来自 www.yoursite.com/(请注意 URL 上没有任何参数)。然后您返回一个带有自生成 id 的 URL,例如 www.yoursite.com?id=abcd 。请注意,在这里您将 id 链接到实际请求。从现在开始,对于网站的任何请求,您都应该重写这个相同的 id。
如果第二个请求来自另一个选项卡,到 www.yoursite.com,那么您将创建另一个不同的 id,依此类推。
IMO,您不应该这样做,因为您破坏了 Web 服务器中构建的整个会话管理理念。我认为您应该考虑其他选项来解决您的问题。
您可以在此处阅读类似的文章How to different sessions in browser-tabs?