Asp.net通过sessionid销毁会话

时间:2012-02-13 09:51:49

标签: asp.net session destroy

当一个用户登录我的网站时,该用户有一个会话[sessionid,如:xxxx-xxxx-xxxx-xx],当他再次登录其他地方时,他有一个不同的会话[sessionid如:yyyy-yyyy-yy-yyy ],我如何在会话[sessionid:yyyy-yyyy-yy-yyy]再次登录后,重新开始以前的会话[sessionid:xxxx-xxxx-xxxx-xx]。

在另一个sesson中销毁一个会话! 这可能吗? 非常感谢!

2 个答案:

答案 0 :(得分:2)

这个请求似乎有很多混乱。我相信这个人想知道如何防止并发用户会话。

建议的方法:当用户成功登录时,使这个新用户会话处于活动状态,并放弃该用户的任何其他现有活动会话。

我的解决方案:

  1. 登录后,将SessionID保存到数据库,引用用户的帐户
  2. 在Site Master文件(或您可能与站点的所有页面共享的任何文件)中,将当前的SessionID(HttpContext.Current.Session.SessionID)与Saved SessionID进行比较。
  3. 如果两者不匹配,请放弃会话(Session.Abandon)。
  4. 这是一个简单的解决方案,但它应该解决这个问题。

答案 1 :(得分:0)

不要担心,如果你担心这意味着你的应用程序设计不好。

将记录器放入Global.asax事件中的Session_End,您将能够通过读取日志文件来跟踪未使用的会话何时关闭。

相关问题