我正在向Disabled
表添加自定义AspNetUsers
列,以便管理员可以暂时禁用帐户。 (看起来LockoutEndDateUtc
并不能完全按照我的需要工作。)
但是,如果管理员在用户登录时禁用了某个帐户,该怎么办?我不是要检查当前用户帐户是否在每个请求上都被禁用,而是在寻找一种方法来使该用户的会话到期,以便下一个请求将要求他们登录。
我相信这是由一个cookie控制的。这可能吗?
答案 0 :(得分:5)
实际上这可以自动完成。在用户存储中的ASP.NET标识中,有一个名为SecurityStamp
的属性。更改此设置后,将强制用户使用下一个请求重新进行身份验证。这是因为此字段用于生成身份验证令牌(在您的情况下为cookie)。该框架具有内置于其中的方法,用于直接UpdateSecurityStampAsync
以及间接地更改它。间接更改的一个很好的例子是通过框架(即调用UpdatePassword
或RemovePasswordAsync
)或启用时更新身份的密码身份的2因素身份验证。
更改安全标记的方法可在UserManager
中找到,名为UpdateSecurityStampAsync。来自文档:
为用户生成新的安全标记,用于SignOutEverywhere功能。