ログイン後にユーザーの電子メールの確認ステータスを確認してから、それらを適切に指示しようとしています。これら二つのスレッドに基づいて_userManager.GetUserAsync(User)がnullを返す
:
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");
}
}
ASP.NET Core Identity - get current user
は、私はこれを試してみました3210
内部コントローラからのものですが、thisUser
は常にnullです。
電子メールが確認され、適切に再配信されることをログオンで確認するにはどうすればよいですか?
私の答えからあなたの解決策を得ることができたら、私の答えはあなた自身の投稿ではありません。 –
私の2番目の解決策は、「あなたが既に持っている電子メールに基づいて保存されている場所からデータを読み出す」ことです。 –
これは完全に真実ではありません。リダイレクトせずにクッキーを設定することができます(もちろん必要です)。これはまさにあなたがこの答えでやっていることです。これは私が第二の解決策を意味しているものです –