当用户通过Web应用程序验证时,将存储会话中的令牌。 如果管理员在用户仍在线时删除后端用户。如何清除用户的会话?
答案 0 :(得分:1)
简答:你不能轻易做到这一点。让会话过期,用户将无法随后登录。
答案很长:如果此功能对您非常重要,那么您必须检查每个请求的数据库,以确保用户自登录后尚未删除。虽然对数据库的调用可以是一个简单的布尔检查(即“用户仍然有效/有效”),但是在会话中失败了存储用户信息的目的。
我不能只删除用户的会话吗?即使您手头有会话ID,也无法找到/操作特定会话。密钥和存储由SessionStateStoreProviderBase
(InProcSessionStateStore
,OutOfProcSessionStateStore
,SqlSessionStateStore
)的实施内部管理,并非由开发人员操纵。
答案 1 :(得分:0)
在删除之前注销用户?
答案 2 :(得分:0)
基于会话Timeout和SlidingExpiration属性。 (感谢@chethan)。会话超时后,用户被迫再次登录 来自MSDN SlidingExpiration
滑动过期会重置有效的过期时间 如果发出请求,则认证cookie超过一半 超时间隔已过。如果cookie过期,则用户必须 重新认证。将SlidingExpiration属性设置为false可以 通过限制应用程序的时间来提高应用程序的安全性 根据配置的超时,身份验证cookie有效 值。
system.web>
<sessionState timeout="x minutes"/>
...
</system.web>
或者您可以使用AuthorizeAttribute.AuthorizeCore方法AuthorizeCore
答案 3 :(得分:0)
您是否需要清除会话或阻止将来访问授权页面?
如果您对每个http服务器请求重新进行身份验证或检查授权,则该用户将被有效注销。