【问题标题】:Invalidate all other user sessions使所有其他用户会话无效
【发布时间】:2014-09-17 18:00:51
【问题描述】:

我正在使用 ASP .NET MVC 4 开发一个网站,我使用 SimpleMembership 进行身份验证。 我需要限制用户使用他的帐户进行不超过特定数量的会话。在用户达到他的限制后,我想使他最旧的经过身份验证的会话无效。 计数会话可以在 global.asax 的 session_start 和 session_end 方法中实现,但我真的不确定如何进行失效。任何想法将不胜感激。

【问题讨论】:

    标签: asp.net-mvc asp.net-mvc-4


    【解决方案1】:

    聚会有点晚了,但我是这样做的。

    • 当用户登录时,我将 asp.net 会话保存在缓存中
    • 一个属性 (OneSessionPerUser) 检查用户是否登录并且他的当前会话等于缓存的会话
      • 如果缓存的会话 当前会话 --> logout()

    我创建了一个属性和一个静态 void(用于获取和设置缓存值)

    【讨论】:

      【解决方案2】:

      对于您的问题,我会从会话中获取密钥,然后删除最旧的密钥。

       var keys = Context.Session.Keys;  //get the keys
       Context.Session.Remove(keys[0]; // remove first key in the list.
      

      【讨论】:

      • 是的,但是我如何获得其他用户的会话?
      猜你喜欢
      • 1970-01-01
      • 2015-03-19
      • 2014-12-05
      • 2017-08-22
      • 1970-01-01
      • 2013-10-14
      • 1970-01-01
      • 1970-01-01
      • 2014-02-25
      相关资源
      最近更新 更多