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

在asp.net identity 2.0中获取分配角色的用户列表

发布时间:2020-12-15 18:39:31 所属栏目:asp.Net 来源:网络整理
导读:我有一个下拉列表框列出了角色。我想获得具有该角色的用户列表。我的意思是“管理员”角色或“CanEdit”角色的用户列表。这里是我的代码: public IQueryableMicrosoft.AspNet.Identity.EntityFramework.IdentityUser GetRolesToUsers([Control]string ddlRo
我有一个下拉列表框列出了角色。我想获得具有该角色的用户列表。我的意思是“管理员”角色或“CanEdit”角色的用户列表。这里是我的代码:
public IQueryable<Microsoft.AspNet.Identity.EntityFramework.IdentityUser> GetRolesToUsers([Control]string ddlRole)
    {

        //ddlRole returns role Id,based on this Id I want to list users

        var _db = new ApplicationDbContext();
        IQueryable<Microsoft.AspNet.Identity.EntityFramework.IdentityUser> query = _db.Users;

        if (ddlRole != null)
        {
            //query = query.Where(e => e.Claims == ddlRole.Value);  ???????              
        }

        return query;
    }

请帮忙。

更新代码(仍然错误)

public List<IdentityUserRole> GetRolesToUsers([Control]string ddlRole)
    {

        var roleManager = new RoleManager<IdentityRole>(new RoleStore<IdentityRole>(new ApplicationDbContext()));
        var users = roleManager.FindByName("Administrator").Users.ToList();
        return users;
    }

错误:当ItemType设置为“Microsoft.AspNet.Identity.EntityFramework.IdentityUser”时,选择方法必须返回“IQueryable”或“IEnumerable”或“Microsoft.AspNet.Identity.EntityFramework.IdentityUser”之一。

我尝试过各种铸件,但没有一个帮助。

更新(工作方案)

感谢chris544,他的想法帮助我解决了这个问题。这里是工作方法:

public List<ApplicationUser> GetRolesToUsers([Control]string ddlRole)
    {
        var context = new ApplicationDbContext();
        var users = context.Users.Where(x => x.Roles.Select(y => y.RoleId).Contains(ddlRole)).ToList();

        return users;
    }

解决方法

不是专家,但…

在身份识别中似乎没有建立这种功能,我无法从内置的角色中获得它的工作(它似乎不适用于基于声明的身份)。

所以我最终做了这样的事情:

var users = context.Users        
    .Where(x => x.Roles.Select(y => y.Id).Contains(roleId))
    .ToList();

> x.Roles.Select(y => y.Id)获取用户X的所有角色ID的列表> .Contains(roleId)检查此id列表是否包含必需的roleId

(编辑:李大同)

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

    推荐文章
      热点阅读