当用户从浏览器登录时,他之前的会话应该过期

时间:2015-10-22 09:43:29

标签: session

我有一个面向外部的网站(后端SQL Server和ASP.NET),我想要一个功能,如果来自相同ID的用户已经登录,并且他试图从其他浏览器或通过其他浏览器再次登录频道,他以前的会议应该过期。

所以我应该以哪种方式继续?

1 个答案:

答案 0 :(得分:0)

您可以通过在每次用户登录时提供唯一的会话ID来将会话存储在数据库中。通过将会话ID也存储在会话变量中,您可以看到用户何时登录其他位置。 / p>

例如:

  • 用户A在笔记本电脑上的Safari中登录
  • 会话ID生成并存储在数据库和会话变量
  • 用户A浏览不同的页面
  • 将数据库中的会话ID与会话变量
  • 进行比较
  • ID匹配,用户仍然已登录
  • 用户A使用手机上的Chrome登录
  • 在数据库和会话变量中生成并存储(覆盖前一个)会话ID
  • 用户A在笔记本电脑上浏览 到新页面
  • ID不匹配,重定向到登录页面

您还可以通过保留会话表来使其更加通用,以便允许每个用户的最大会话数。关键是使用像数据库这样的全局存储结合会话信息来验证用户最后登录的位置。