当前用户在登录后立即为空
问题描述:
我遇到问题,在成功签署用户之后,我想要获取该用户。我的问题是,用户始终是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);
}
答
你正在努力寻找从HttpContext的用户,但是当HttpContext的是为控制器设置的用户,因为它并没有在控制器被实例化时存在空。
使用
var user = _userManager.FindByEmailAsync(model.Email)
相反在这种情况下
这是正常的,因为'User'属性将仅在未来** **要求进行设定。 – Tseng