asp.net - 当前用户登录后始终为空

标签 asp.net asp.net-core

我遇到了一个问题,在我成功地将用户登录到我的应用程序后,我想要获取该用户。我的问题是用户总是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 中查找 User,但是当为 Controller 设置 HttpContext 时,User 为 null,因为在实例化 Controller 时它还不存在。

使用

var user = _userManager.FindByEmailAsync(model.Email)

在这种情况下

关于asp.net - 当前用户登录后始终为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38543491/

相关文章:

asp.net - MVC ViewModel 返回 ArgumentNullException

c# - aspx 页面的内容敏感标题

asp.net-core - 系统找不到Visual Studio 2017 ASP.NET Core项目

asp.net-identity - AspNetCore - 使用 Google 身份验证时更改 cookie 名称

c# - 如何确定网页是否已完全加载到网络浏览器中?

asp.net - 如何使用 asp.net vb 将保存在单独变量中的字符串日期转换为日期?月份变量以文本格式写出

asp.net-core - Chrome从http调用https时抛出CORS错误,并且ASP Core不发送CORS header

c# - ASP.NET dotnet框架中缺少System.Net.Sockets? -ASP.NET vNext

asp.net - 未处理的拒绝(错误): Could not load settings for 'WebPortal' - ASP. NET Core React

javascript - 模态未使用新数据刷新