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

时间:2018-05-21 03:04:54

标签: 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<ApplicationUser> GetCurrentUserAsync() => _userManager.GetUserAsync(HttpContext.User);

但是,当我在课堂上尝试这个时,_usermanagerHttpContext都会出现错误,说明需要对象引用。

我尝试了这个,但是,我似乎无法使用此方法访问用户的信息。任何帮助将不胜感激。

var contextAccessor = services.GetRequiredService<IHttpContextAccessor>();
var user = contextAccessor.HttpContext.User;

2 个答案:

答案 0 :(得分:0)

您的控制器的用户属性提供对用户主体对象的直接访问。即System.Security.Principal.IPrincial。

this.User;

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

答案 1 :(得分:0)

HttpContext.Current.User.Identity.GetUserId()