C# 从ASP.NET MVC中的类获取当前ApplicationUser

C# 从ASP.NET MVC中的类获取当前ApplicationUser,c#,asp.net,asp.net-mvc,authentication,asp.net-core,C#,Asp.net,Asp.net Mvc,Authentication,Asp.net Core,我正在尝试从类中获取当前已登录ApplicationUser的信息 我能够在这样的控制器中实现这一点: private readonly UserManager<ApplicationUser> _userManager; public AccountController(UserManager<ApplicationUser> _userManager) { _userManager = userManager; } private Task<Appl

我正在尝试从类中获取当前已登录ApplicationUser的信息

我能够在这样的控制器中实现这一点:

private readonly UserManager<ApplicationUser> _userManager;

public AccountController(UserManager<ApplicationUser> _userManager)
{
    _userManager = userManager;
}

private Task<ApplicationUser> GetCurrentUserAsync() => _userManager.GetUserAsync(HttpContext.User);

控制器的用户属性提供对用户主体对象的直接访问。i、 e.系统、安全、主体、原则

这个用户


this.User.Identity提供该用户的标识,该标识可能来自您的身份验证别名身份提供程序

在服务类中这样做是否一定合适?理论上,该服务可以在不同的计算机上以不同的用户帐户执行。您是否应该在控制器中获取用户ID并将其传递给服务?@jmcilhinney抱歉,它不是服务类。我对ASP.NET很陌生,但术语有误。我有一个ShoppingCart类,其中有一个GetCart方法,我正试图在Startup.cs中将其配置为服务,因此我认为在我的情况下使用控制器是行不通的
HttpContext.Current.User.Identity.GetUserId()
HttpContext.Current.User.Identity.GetUserId()