Я реализовал ASP.Net идентичность с некоторыми пользовательскими свойствами после этой статьи -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
это сервис, который расширяет IRepository который запрашивает DbSet<ApplicationUser>
.
Я вижу, что Роли правильно отображаются в таблице ApplicationUserRoles
, и я получаю ожидаемый результат, когда я делаю _userManager.IsInRole(user.Id, "Admin");
.
Что могло быть не так с этим?
Rahul.