我遇到问题,在我成功将用户签到我的应用程序后,我希望得到该用户。我的问题是用户总是null
。奇怪的是,我在其他地方使用完全相同的方法来成功获取当前用户。
作为.NET的新手,我不确定为什么它不适合我。
var result = await _signInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, lockoutOnFailure: true);
if (result.Succeeded)
{
EmailModel emailModel = new EmailModel {
toEmail = model.Email,
subject = " ",
message = " "
};
var user = await _userManager.GetUserAsync(HttpContext.User);
// user here is always null
await _emailService.SendTestEmail(emailModel, user);
return RedirectToLocal(returnUrl);
}
答案 0 :(得分:5)
您正在尝试从HttpContext中找到用户,但是当为控制器设置了HttpContext时,User为null,因为在实例化控制器时它尚不存在。
使用
var user = _userManager.FindByEmailAsync(model.Email)
相反,在这种情况下