_userManager.GetUserAsync (Usuario) devuelve nulo
Estoy tratando de verificar el estado de confirmación de correo electrónico de un usuario después de iniciar sesión y luego dirigirlo según corresponda.
Basado en estos dos hilos:
ASP.NET Core Identity: obtenga el usuario actual
Cómo obtener el usuario actual en asp.net core
Intenté esto:
var result = await _signInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, lockoutOnFailure: false);
if (result.Succeeded)
{
ClaimsPrincipal currentUser = this.User;
var thisUser = await _userManager.GetUserAsync(currentUser);
if(thisUser.EmailConfirmed)
{
return View("~/Views/Task/Index.cshtml");
}
else
{
return View("ConfirmEmail");
}
}
Y también esto:
var result = await _signInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, lockoutOnFailure: false);
if (result.Succeeded)
{
var thisUser = await _userManager.GetUserAsync(HttpContext.User);
if(thisUser.EmailConfirmed)
{
return View("~/Views/Task/Index.cshtml");
}
else
{
return View("ConfirmEmail");
}
}
Desde el interior del controlador perothisUser
siempre es nulo.
¿Cómo verifico en el inicio de sesión que su correo electrónico esté confirmado y redirija adecuadamente?