从asp.net核心标识中获取applicationuser的属性



我找到了这个链接:

如何获取当前登录的用户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);
}

最新更新