c# - ASP.net Identity - 获取“admin”或“adminlower”角色的用户集合
问题描述
我可以获取所有用户的集合,并使用如下 Linq 对它们进行排序:
var Users = UserManager.Users.ToList().OrderBy(x => x.DateCreated)
我想限制用户返回到具有“admin”或“adminlower”角色的用户。我搜索了很多,发现了这样的东西,但它们没有帮助:
http://aryalnishan.com.np/asp-net-mvc/list-all-users-with-associated-roles-in-asp-net-identity/
我试过这个,也不起作用:
var AdminRoles = new string[] { "admin", "adminlower" };
var Roles = RoleManager.Roles;
Roles.Contains(AdminRoles);
我似乎无法获得语法,我该怎么做?
解决方案
我没有对此进行测试,但您可能正在寻找类似的东西:
你可以得到roleId
这种方式。
var roleManager= new RoleManager<IdentityRole>(new RoleStore<IdentityRole>(context));
//Get admin role
var adminRole= roleManager.FindByName("Admin");
var admins=context.Users.Where(x=>x.Roles.Any(role=>role.RoleId==adminRole.Id)).ToList().OrderBy(d=>d.DateCreated);
另一种选择可能是加载所有用户,然后循环使用UserManager.IsInRoleAsync
以过滤管理员。但是除非您的用户群相当小,否则您不想这样做。
推荐阅读
- c# - C#接口中覆盖方法的替代方法
- reactjs - 在反应中跳转到页面中的特定位置
- java - 从 Classpath 而不是从 resources/config.properties 检索属性
- css - CSS样式创建一个倾斜的正方形而不旋转
- python - 在 RASA Core/NLU 中获取意图值
- email - 使用从 PL/SQL PROC 中提取的数据通过电子邮件发送报告
- ios - 如何在 UIView 上实现圆边效果?我附上了一张示例图片
- angular - Angular 根据用户输入动态更改组件数组
- javascript - 在 XML 中搜索一个单词并仅使用 javascript 显示该节点
- c# - 将 Excel 文件导入 DataGridView,然后将 DataGridView 更新为数据库(使用 C# 和 Visual Studio)