簡體   English   中英

獲取角色中的所有用戶。 ASP.NET身份

[英]Get all users within a role. ASP.NET Identity

我可以得到這樣的所有用戶

var users = UserManager.Users.ToList();

我可以找到這樣的角色

var role = db.Roles.SingleOrDefault(m => m.Name == "User");

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

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);

我在var role獲得角色,但是當我調試時, userInRole給了我Count = 0 沒有編譯錯誤。

您可以使用以下代碼檢索特定角色(Identity 2.xx)中的所有用戶:

var users = await _userManager.GetUsersInRoleAsync("RoleName");

同步使用:

var users = _userManager.GetUsersInRoleAsync("RoleName").Result;
var usersInRole = db.Users.Where(m => m.Roles.RoleId == role.Id)).ToList();

您搜索所有用戶並返回符合特定角色ID的用戶

您是否嘗試使用導航屬性Lazy Loading?

var role = db.Roles.SingleOrDefault(m => m.Name == "User");
var usersInRole = role.Users;

您可以使用如下所示的Linq表達式基本查詢:

var roleUserIdsQuery=from role in db.Roles 
                where role.Name=="User"
                from user in role.Users
                select user.UserId;
var users=db.Users.Where(u=>roleUserIdsQuery.Contains(u.Id)).ToList();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM