I have a Web Application in MVC 6 (Asp.Net One Core), and I\'m using Claims based authentication. In the Login method I set the Claims:
var claims = new Claim[]
I have to SignOutAsync and SignInAsync again in order to update the cookie?
Answer is yes.
Easiest way is you can manually sign-out and sign-in (create claims again) inside the same action method where you are updating the email.
The best solution is to save this into a classic session?
I suggest not to do that. Using session state explicitly is a bad practice in ASP.Net MVC.
Another option, instead of SignOutAsync
and SignInAsync
, is to use RefreshSignInAsync
.
Example:
var user = await _userManager.FindByIdAsync(yourId);
await _signInManager.RefreshSignInAsync(user);
View the RefreshSignInAsync
code in the SignInManager
(netcore 3.1.8):
https://github.com/dotnet/aspnetcore/blob/c75b3f7a2fb9fe21fd96c93c070fdfa88a2fbe97/src/Identity/Core/src/SignInManager.cs#L169