猿问

如何在ASP.NET Core中获得当前用户

我想要一个当前用户来获取用户信息,例如电子邮件。但是我不能在asp.net核心中做到这一点。我很困惑这是我的代码。


HttpContext在控制器的构造函数中几乎为null 。在每个动作中都吸引用户是不好的。我想一次获取用户信息并设置为ViewData;


public DashboardController()

{

    var user = HttpContext.User.GetUserId();

}


江户川乱折腾
浏览 2054回答 3
3回答

泛舟湖上清波郎朗

User.FindFirst(ClaimTypes.NameIdentifier).Value编辑构造函数下面的代码有效:public Controller(IHttpContextAccessor httpContextAccessor){&nbsp; &nbsp; var userId = httpContextAccessor.HttpContext.User.FindFirst(ClaimTypes.NameIdentifier).Value&nbsp;}编辑RTM您应该注册IHttpContextAccessor:&nbsp; &nbsp; public void ConfigureServices(IServiceCollection services)&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();&nbsp; &nbsp; }
随时随地看视频慕课网APP
我要回答