让所有用户都属于一个角色。ASP.NET身份

And*_*ers 4 c# asp.net asp.net-roles asp.net-identity

我可以得到所有这样的用户

var users = UserManager.Users.ToList();
Run Code Online (Sandbox Code Playgroud)

我可以找到这样的角色

var role = db.Roles.SingleOrDefault(m => m.Name == "User");
Run Code Online (Sandbox Code Playgroud)

我想在AspNetRoles表(我有UserAdmin)中列出所有角色名称为“ User”的用户。

var role = db.Roles.SingleOrDefault(m => m.Name == "User");
var usersInRole = db.Users.Where(m => m.Roles.Any(r => r.RoleId == role.Id)).ToList();

return View(usersInRole);
Run Code Online (Sandbox Code Playgroud)

我可以担任角色,var role但是在调试时userInRole会给我Count = 0。没有编译错误。

Saj*_*hiy 5

您可以使用下面的代码来检索具有特定角色(身份2.xx)的所有用户:

var users = await _userManager.GetUsersInRoleAsync("RoleName");
Run Code Online (Sandbox Code Playgroud)

或用于同步使用:

var users = _userManager.GetUsersInRoleAsync("RoleName").Result;
Run Code Online (Sandbox Code Playgroud)


小智 1

您是否尝试过使用导航属性延迟加载?

var role = db.Roles.SingleOrDefault(m => m.Name == "User");
var usersInRole = role.Users;
Run Code Online (Sandbox Code Playgroud)