首页 / 问答 / ASP.NET Core(.NET 6)应用程序中如何在非控制器中读取登录用户名称等信息呢?

ASP.NET Core(.NET 6)应用程序中如何在非控制器中读取登录用户名称等信息呢?

0

在ASP.NET Core Web API(.NET 6)等应用程序中,试图从Web API控制器外部的上下文获得当前登录的用户信息。

我们知道,在ASP.NET Core程序中,如果要在控制器中读取登录用户的信息,可以通过请求上下文得到,比如:

[HttpGet]
public IActionResult Get()
{
    var userName = HttpContext.User.Identity.Name;
    return Ok(userName);
}

那么,ASP.NET Core(.NET 6)等应用程序中,如何在非控制器中读取登录用户名称等信息呢?

回复 [×]
提交评论
请输入评论内容

2 个回答

  • 0

    可以向目标类中注入IHttpContextAccessor接口,IHttpContextAccessor的实例暴露了HttpContext属性,它可以访问到当前请求上下文的User信息。

    假如有IUserService接口以及UserService实现类,现要在UserService访问当前请求的登录用户信息。

    如果是ASP.NET Core 6(.NET 6)以下的.NET Core应用程序,则在Startup.cs启动文件中添加如下的服务:

    如果是.NET 6应用程序,则在Program.cs文件中添加如下的服务:

    Rector的个人主页

    Rector

    2022-04-20 回答

    • 0

      如果使用MediatR作为处理程序,示例如下:

      别忘了,在Startup.cs启动文件中注册服务:

      Rector的个人主页

      Rector

      2022-04-20 回答

      我来回答