我想要一个当前用户来获取用户信息,例如电子邮件。但是我不能在asp.net核心中做到这一点。我很困惑这是我的代码。HttpContext在控制器的构造函数中几乎为null 。在每个动作中都吸引用户是不好的。我想一次获取用户信息并设置为ViewData;public DashboardController(){ var user = HttpContext.User.GetUserId();}
3 回答
泛舟湖上清波郎朗
TA贡献1818条经验 获得超3个赞
User.FindFirst(ClaimTypes.NameIdentifier).Value
编辑构造函数
下面的代码有效:
public Controller(IHttpContextAccessor httpContextAccessor)
{
var userId = httpContextAccessor.HttpContext.User.FindFirst(ClaimTypes.NameIdentifier).Value
}
编辑RTM
您应该注册IHttpContextAccessor:
public void ConfigureServices(IServiceCollection services)
{
services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
}
- 3 回答
- 0 关注
- 2053 浏览
添加回答
举报
0/150
提交
取消