2017-06-16 138 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); –