Asp.net core 如何在.NETCore中新登录时注销以前的登录?

Asp.net core 如何在.NETCore中新登录时注销以前的登录?,asp.net-core,Asp.net Core,当用户通过.net core中的其他浏览器登录时,如何注销以前的登录? 我提到了这个链接,但对如何使用它感到困惑。 您只需在UserManager实例上与相关用户一起调用UpdateSecurityStampAsync。然后在上面签名。这不会自动注销其他会话,因为必须使用客户端组件。但是,在从另一个浏览器发出的下一个请求中,cookie将失效,因为安全戳不匹配,然后用户将有效地注销。我这样做很有效: 登录完成后: var loggedinUser = await _userManager

当用户通过.net core中的其他浏览器登录时,如何注销以前的登录? 我提到了这个链接,但对如何使用它感到困惑。

您只需在
UserManager
实例上与相关用户一起调用
UpdateSecurityStampAsync
。然后在上面签名。这不会自动注销其他会话,因为必须使用客户端组件。但是,在从另一个浏览器发出的下一个请求中,cookie将失效,因为安全戳不匹配,然后用户将有效地注销。

我这样做很有效: 登录完成后:

    var loggedinUser = await _userManager.FindByEmailAsync(model.Email);
                if (loggedinUser != null)
                {
                  var Securitystamp = await _userManager.UpdateSecurityStampAsync(loggedinUser);
                }
在StartUp.cs中

services.Configure<SecurityStampValidatorOptions>(options => options.ValidationInterval = TimeSpan.FromSeconds(0));
services.Configure(选项=>options.ValidationInterval=TimeSpan.FromSeconds(0));

使用
HttpContext.SignOutAsync
应该注意的是,属性决定何时检查默认值为30分钟的时间。