[ASP.NET Core]ASP.NET Core应用程序开发中如何获取当前登录用户的登录信息?

ASP.NET Core 作者: Rector 64阅读 0评论 0收藏 收藏本文

郑重申明:本文未经许可,禁止任何形式转载

问题描述

在ASP.NET Core应用程序开发中如何获取当前登录用户的信息,如:用户名,电子邮箱等等信息。甚至控制器的构造函数中获取的HttpContext请求上下文都是null

public DashboardController()
{
    var user = HttpContext.User.GetUserId();
    // HttpContext is null
}

如何想在控制器中的Action操作方法中获取用户的登录信息,然后将这些信息设置到ViewData中,又应该如何实现呢?

方案一

在ASP.NET Core应用程序中,我们可以通过使用 HttpContext.User.FindFirst(key).Value来获取当前登录用户的信息,如:

public Controller(IHttpContextAccessor httpContextAccessor)
{
    var userId = httpContextAccessor.HttpContext.User.FindFirst(ClaimTypes.NameIdentifier).Value 
}

当然,在使用以上方法之前,请不要忘记在启动类Startup.cs中注册IHttpContextAccessor服务,如下:

public void ConfigureServices(IServiceCollection services)
{
    services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
}

阅读了该文章的人还浏览了...

本文永久链接码友网 » [ASP.NET Core]ASP.NET Core应用程序开发中如何获取当前登录用户的登录信息?

发布于: 2018-10-30 09:32:30
分享扩散: