当前用户在登录后立即为空

问题描述:

我遇到问题,在成功签署用户之后,我想要获取该用户。我的问题是,用户始终是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

这是正常的,因为'User'属性将仅在未来** **要求进行设定。 – Tseng

你正在努力寻找从HttpContext的用户,但是当HttpContext的是为控制器设置的用户,因为它并没有在控制器被实例化时存在空。

使用

var user = _userManager.FindByEmailAsync(model.Email) 

相反在这种情况下