我试图从类中获取当前在ApplicationUser中签名的信息。
我能够在这样的控制器中实现这一目标:
private readonly UserManager<ApplicationUser> _userManager;
public AccountController(UserManager<ApplicationUser> _userManager)
{
_userManager = userManager;
}
private Task<ApplicationUser> GetCurrentUserAsync() => _userManager.GetUserAsync(HttpContext.User);
但是,当我在课堂上尝试这个时,_usermanager
和HttpContext
都会出现错误,说明需要对象引用。
我尝试了这个,但是,我似乎无法使用此方法访问用户的信息。任何帮助将不胜感激。
var contextAccessor = services.GetRequiredService<IHttpContextAccessor>();
var user = contextAccessor.HttpContext.User;
答案 0 :(得分:0)
您的控制器的用户属性提供对用户主体对象的直接访问。即System.Security.Principal.IPrincial。
this.User;
this.User.Identity提供该用户的Indentity,可能来自您的身份验证别名Identity提供程序。
答案 1 :(得分:0)
HttpContext.Current.User.Identity.GetUserId()