使所有其他用户会话无效

时间:2013-04-19 11:00:31

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

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

2 个答案:

答案 0 :(得分:1)

派对有点晚了,但这就是我的表现。

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

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

答案 1 :(得分:0)

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

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