2017-06-16 139 views
1

我需要在更改用户密码后重置所有身份验证。我试图更改安全标记,但它不会重置身份验证:ASP.NET核心。重置所有身份验证

await _userManager.UpdateSecurityStampAsync(User); 

我正在使用Asp Net Core Identity。

+0

重置授权意味着什么?通常情况下,密码更改只是*更改密码*,因此下次登录时必须重新输入密码。你能否试图澄清你想要做什么? – juunas

+0

@juunas当用户从两个设备获得授权时。如果用户在一台设备上更改密码,则必须在另一台设备上重置授权。对不起,我的英语不好。 – mirypoko

+0

你的意思是认证* :)这很好。你的问题实际上是关于如何跨设备/会话注销用户。 – juunas

回答

0

我们这样做是在注销:

await HttpContext.Authentication.SignOutAsync(CookieAuthenticationDefaults.AuthenticationScheme); 

但是,当用户更改他们的密码,我们并不需要注销唯一明确下来会话或其他坚持用户上下文信息,或重新创建信息。

+0

它不起作用:InvalidOperationException:没有配置身份验证处理程序来处理该方案:Cookie – mirypoko

+0

这假定您正在使用await HttpContext.Authentication.SignInAsync(..)并在Startup中使用相同的方案配置它。 –

+0

例如:services.AddAuthentication(options => options.SignInScheme = CookieAuthenticationDefaults.AuthenticationScheme); –