_userManager.GetUserAsync (User) retorna nulo
Estou tentando verificar o status de confirmação de e-mail dos usuários após o login e depois encaminhá-los de acordo.
Com base nesses dois segmentos:
Identidade principal do ASP.NET - obtenha o usuário atual
Como obter usuário atual no núcleo do asp.net
Eu tentei isso:
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");
}
}
E também isso:
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");
}
}
De dentro do controlador, masthisUser
é sempre nulo.
Como verifico no logon se o email está confirmado e redireciono adequadamente?