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

asp.net – 如何获取用户在MVC 5中注册的角色的ID

发布时间:2020-12-16 07:35:16 所属栏目:asp.Net 来源:网络整理
导读:我想获得一个IList ApplicationRole用户当前注册的角色. 现在在Usermanager类中,我看到有一个函数调用IList String usersRoles = userManager.GetRoles(id);但它只是将角色的名称作为字符串返回.这对我没有帮助,因为我需要角色的ID,名称和描述. 我怎样才能进
我想获得一个IList< ApplicationRole>用户当前注册的角色.

现在在Usermanager类中,我看到有一个函数调用IList< String> usersRoles = userManager.GetRoles(id);但它只是将角色的名称作为字符串返回.这对我没有帮助,因为我需要角色的ID,名称和描述.

我怎样才能进行类似的调用但是接收到applicationRole而不是字符串?

这是我的模特:

public class ApplicationRole : IdentityRole
{
    [Display(Name = "Description")]
    [StringLength(100,MinimumLength = 5)]
    public string Description { get; set; }

}

解决方法

我认为您需要查询ApplicationDbContext,因为没有明显的方法可以通过UserManager或UserStore API的单个调用来获取它…

var context = new ApplicationDbContext();
var roles = await context.Users
                    .Where(u => u.Id == userId)
                    .SelectMany(u => u.Roles)
                    .Join(context.Roles,ur => ur.RoleId,r => r.Id,(ur,r) => r)
                    .ToListAsync();

(编辑:李大同)

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

    推荐文章
      热点阅读