我找到了这个链接:
如何获取当前登录的用户Id ASP。网络核心
但是答案都过时了!
和这SO帖子既不能是一个解决方案,它只是一个样板解决方案:我应该如何访问我的ApplicationUser属性从我的MVC 6视图?
在mvc中action: base。User不是ApplicationUser类型,也不是base.User.Identity类型。两者都不能被转换为ApplicationUser
那么我如何访问我的自定义属性放在applicationuser对象中时登录?
对于控制器,要依赖于UserManager<ApplicationUser>
。然后,您可以通过请求的HttpContext访问ApplicationUser。我为我的项目写了一个扩展方法:
public static class IdentityExt
{
public static Task<T> GetCurrentUser<T>(this UserManager<T> manager, HttpContext httpContext) where T: class{
return manager.GetUserAsync(httpContext.User);
}
}
返回当前用户,并允许您访问他们的所有属性。
这里是在一个动作中:
public Task<IActionResult> Index(){
var user = await _userManager.GetCurrentUser(HttpContext);
}