W kontrolerze w aplikacji sieci Web ASP.NET Core chcę odświeżyć użytkownika i roszczenia w pliku cookie przechowywanym na kliencie.Odświeżenie biletu cookie użytkownika w ASP.Net Core Identity
Klient jest uwierzytelniony i autoryzowany, ASP.NET Core Identity przechowuje te informacje w bilecie cookie - teraz w niektórych kontrolerach chcę odświeżyć dane w pliku cookie.
Funkcjama funkcję odświeżania RefreshSignInAsync
, ale jako parametr nie przyjmuje wartości HttpContext.User
.
[HttpPost("[action]")]
[Authorize]
public async Task<IActionResult> Validate()
{
// todo: update the Client Cookie
await _signInManager.RefreshSignInAsync(User); // wrong type
}
Jak odświeżyć plik cookie?
Cóż, 'HttpContext.User' zawiera nazwę użytkownika (' ClaimsPrincipal', with tożsamość i roszczenia). SignInManager Wykonuje 'TUser', który zależy od typu użytkownika użytego do skonfigurowania Tożsamości. Wystarczy uzyskać identyfikator użytkownika z tokena, aby uzyskać użytkownika i odświeżyć go. może zostać wyodrębniony jako filtr akcji lub metoda rozszerzenia lub oba. – Tseng