加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 在布局视图中获取当前的ApplicationUser

发布时间:2020-12-15 21:06:50 所属栏目:asp.Net 来源:网络整理
导读:我正在使用MVC5,使用自定义属性创建了ApplicationUser:IdentityUser.现在我想在layout.cshtml中获取一个自定义属性(Avatar),以在不同的布局(标题,侧边栏)视图中显示登录的用户图像.我怎么做? public class ApplicationUser : IdentityUser{ public string
我正在使用MVC5,使用自定义属性创建了ApplicationUser:IdentityUser.现在我想在layout.cshtml中获取一个自定义属性(Avatar),以在不同的布局(标题,侧边栏)视图中显示登录的用户图像.我怎么做?
public class ApplicationUser : IdentityUser
{
    public string Avatar { get; set; }
    public async Task<ClaimsIdentity> GenerateUserIdentityAsync(UserManager<ApplicationUser> manager)
    {
        var userIdentity = await manager.CreateIdentityAsync(this,DefaultAuthenticationTypes.ApplicationCookie);
        return userIdentity;
    }

}

目前我使用@ User.Identity.Name在我的视图中获取登录的用户名.我也想要用户形象.

我怎么能得到它?

解决方法

您可以添加头像属性作为IdentityClaim
public class ApplicationUser : IdentityUser
{
     public string Avatar { get; set; }
     public async Task<ClaimsIdentity> GenerateUserIdentityAsync(UserManager<ApplicationUser> manager)
     {
           var userIdentity = await manager.CreateIdentityAsync(this,DefaultAuthenticationTypes.ApplicationCookie);
           userIdentity.AddClaim(new Claim("avatar",this.Avatar));
           return userIdentity;
     }
}

在剃刀内部视图中,您可以像这样访问它

@{
    var avatar = ((ClaimsIdentity)User.Identity).FindFirst("avatar");
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读