如何在 ASP.NET Core Identity 中注销用户

How to sign out a user in ASP.NET Core Identity

我正在尝试注销我正在更改的用户的所有活动会话(删除、添加或删除角色、更改密码等)。

我找到了旧版本 ASP .NET 的解决方案。本质上是调用 UserManager.UpdateSecurityStampAsync(userId); 但这似乎不适用于 ASP .NET Core。我可以调用该函数,但它什么也不做。之后用户仍然登录。

那么我到底该如何注销已登录的用户(所有打开的会话)?

有一个 IdentityOptions 的 属性 称为 SecurityStampValidationInterval,它设置验证 cookie 的频率。默认设置为 30 分钟。您可以更改它:

services.Configure<IdentityOptions>(options =>
{
     options.SecurityStampValidationInterval = TimeSpan.FromSeconds(0);             
});

为 Account/logout 创建脚手架项目并根据需要修改 post 函数或创建一个 get 函数来模拟 post 所做的事情,这基本上是调用await _signInManager.SignOutAsync();