Update Claims values in ASP.NET One Core
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
(net 5.0.8):
https://github.com/dotnet/aspnetcore/blob/ae2eabad0e49302d0632a7dde917fdc68d960dc4/src/Identity/Core/src/SignInManager.cs#L170