GetUsersInRoleAsync
возвращает список IdentityUser
объектов. Чтобы получить список идентификаторов, вам необходимо получить доступ к свойству Id
этих объектов.
// Get a list of users in the role
var usersWithPermission = _userManager.GetUsersInRoleAsync("Admin").Result;
// Then get a list of the ids of these users
var idsWithPermission = usersWithPermission.Select(u => u.Id);
// Now get the users in our database with the same ids
var users = _db.ApplicationUser.Where(u => idsWithPermission.Contains(u.Id)).ToListAsync();
return users;
Обратите внимание, что использование .Result
в методе async
не рекомендуется, посколькуможет привести к тупикам. Вместо этого используйте await
и сделайте ваш метод async
.
Также обратите внимание, что в зависимости от настроек, если ApplicationUser
наследуется от IdentityUser
и система идентификации правильно настроена, GetUsersInRoleAsync
уже вернет ApplicationUser
объектов, и вам нужно только привести их к правильному типу:
// Get a list of users in the role
var usersWithPermission = _userManager.GetUsersInRoleAsync("Admin").Result;
var users = usersWithPermission.OfType<ApplicationUser>();
return users;