如何从特定角色获取所有用户



我得到了我的Users,分为两类:StudentProfessor,我试图让所有用户都处于Professor角色中,但我不知道我做错了什么。

这是我尝试这样做的代码:

RoleManager<IdentityRole> roleManager = new RoleManager<IdentityRole>(new RoleStore<IdentityRole>(context));
List<IdentityUserRole> professors = roleManager.FindByName("Professor").Users.ToList();
List<AppUser> users = new List<AppUser>();
foreach(IdentityUserRole iuser in professors)
{
AppUser user = manager.FindById(iuser.UserId);
users.Add(user);
}

由于某种原因,Professors保持为空。 谁能帮我一把?

我怀疑它是否已经有用于此目的的内置函数,但是您可以通过以下方式获取用户:

public async Task GetUsersInRole()
{
ApplicationDbContext context = new ApplicationDbContext();
var roles = context.Roles.Where(r => r.Name == "Professor");
if (roles.Any())
{
var users = await UserManager.Users.ToListAsync();
var result = (from c in users
where c.Roles.Any(r => r.RoleId == roles.First().Id)
select c);
}
}

并像这样调用该方法:

public async Task<ActionResult> Index()
{
await GetUsersInRole();
return View();
}

相关内容

  • 没有找到相关文章

最新更新