Я пытаюсь проверить статус подтверждения электронной почты пользователей после входа в систему, а затем направить их соответствующим образом.
На основе этих двух тем:
Идентификация ядра ASP.NET — получение текущего пользователя
Как получить текущего пользователя в ядре asp.net
Я пробовал это:
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");
}
}
А еще это:
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");
}
}
Изнутри контроллера, но thisUser
всегда равно нулю.
Как мне проверить при входе в систему, что их электронная почта подтверждена и правильно перенаправлена?