使其他用户的会话无效

时间:2011-12-16 14:58:50

标签: asp.net cas

我创建了一个asp.net站点,它使用Session对象为每个登录用户存储信息。要检查用户是否仍然登录,我会检查会话中是否存在某个对象。

系统使用Jasig CAS身份验证,单点登录工作(如:登录后,用户的Session对象设置正确)。

CAS还支持单点注销。这种情况发生的方式是CAS在我的网站上调用一个网址,其中包含一些关于CAS会话的参数。

我现在需要做的是使指定用户的所有Session对象无效。

如何从我网站上的页面中使随机其他用户的Session对象无效?有没有我可以清除的数据库,它是否都在内存中(如果我知道要查找什么,我可以查看web.config)?

我之前看过这个问题,大多数答案都是“在Session全局变量旁边保留一个全局变量,并检查一下该用户是否应该注销”,但我不知道喜欢那个解决方案...

干杯!

1 个答案:

答案 0 :(得分:0)

会话是针对个人用户设计的。因此,放弃它,必须由用户完成。

所以你可能不得不使用另一个列表&检查一下。

但理想情况下,您不应将身份验证状态与会话绑定。用户是否经过身份验证应该是独立的。然后,您可以通过查询身份验证状态来选择放弃会话。它还可以更轻松地实现计数登录用户和机制等机制。确保只从1个位置登录 - 如果您需要这些。