【发布时间】:2016-06-02 09:53:16
【问题描述】:
我已经在这篇文章之后使用一些自定义属性实现了 ASP.Net 身份 -
http://typecastexception.com/post/2014/06/22/ASPNET-Identity-20-Customizing-Users-and-Roles.aspx
一切都很好,除了。我想获取特定角色下的用户(例如,让我拥有管理员角色下的所有用户)。
我尝试了以下方法来检索用户 -
var userRole = _roleManager.Roles.SingleOrDefault(m => m.Name == role.Name);
var usersInRole = _userManager.Users.Where(m => m.Roles.Any(r => r.RoleId == userRole.Id));
var usersInRole2 = _userService.GetUsers().Where(u => u.Roles.Any(r => r.RoleId == userRole.Id));
其中_roleManager 的类型为ApplicationRoleManager : RoleManager<ApplicationRole>。 _userManager是ApplicationUserManager : UserManager<ApplicationUser, string>类型。
我无法在_userManager 和_userService 中获取用户下的角色
PS : _userService 是扩展查询 DbSet<ApplicationUser> 的 IRepository 的服务。
我可以看到角色在表 ApplicationUserRoles 中正确映射,当我执行 _userManager.IsInRole(user.Id, "Admin"); 时,我得到了预期的结果。
这可能出了什么问题?
拉胡尔。
【问题讨论】:
标签: asp.net-mvc asp.net-identity asp.net-identity-2