我的asp.net会话对象存储在SQL server中。我正在会话中存储ID
。如果客户端打开另一个浏览器并在会话中存储不同的ID
。我需要在同一个基于用户的用户登录用户中通知客户“你确定你想要两个ID都打开吗?”。
应用程序在登录用户(非匿名)上运行
我们如何在asp.net中查看?
答案 0 :(得分:4)
会话未链接到经过身份验证的用户,并且无法在不知道其SessionID的情况下访问其他连接的会话。
通常这种问题可以使用缓存而不是会话状态来解决。使用缓存,您可以创建自己的基于用户的密钥来存储数据。根据您是计划在一台服务器上还是在Web场环境中运行Web应用程序,您可以使用asp.net进程内缓存或众多分布式缓存解决方案之一(例如我正在使用的memcached)网络项目取得巨大成功)。
答案 1 :(得分:2)
有几种方法可以解决这个问题:
选项#1,在您的用户表中添加一个名为“会话ID”的值
当用户登录时,请检查他们的上一个会话ID是什么。然后测试它是否仍然是有效的会话。如果是,请问他们想做什么。每次登录后,将最新的会话ID存储在该表中。
但是,我选择#2:不要这样做。如果用户想要打开多个浏览器窗口来访问您的应用程序,请让他们。这可能是一个很好的理由。大多数(几乎所有)用户都不知道“会话状态”甚至意味着什么,他们真的不想知道。他们所关心的只是完成他们的工作。