使用户会话过期(当前用户除外)



我正在向AspNetUsers表添加自定义Disabled列,以便管理员可以暂时禁用帐户。(看起来LockoutEndDateUtc不能完全按照我的需要工作。

但是,如果管理员在用户登录时禁用帐户怎么办?我不必检查当前用户帐户是否在每个请求上都被禁用,而是在寻找一种使该用户的会话过期的方法,以便下一个请求将要求他们登录。

我相信这是由cookie控制的。这可能吗?

实际上这可以自动完成。在用户存储 ASP.NET 标识中,有一个名为 SecurityStamp 的属性。更改此设置时,将强制用户使用下一个请求重新进行身份验证。这是因为此字段用于生成身份验证令牌(在您的情况下为 cookie(。该框架内置了一些方法,用于直接UpdateSecurityStampAsync或间接更改此设置。间接更改时的一个很好的例子是通过框架更新身份的密码(即调用UpdatePasswordRemovePasswordAsync(,或者为身份启用 2 因素身份验证时。

更改安全标记的方法可以在UserManager中找到,称为UpdateSecurityStampAsync。从文档中:

为用户生成新的安全标记,用于 SignOutEverywhere 功能。

相关内容

  • 没有找到相关文章

最新更新