.Net Core Identity Framework Получение пользователей по заявке
В нашем веб-API.NET Core мы настроили авторизацию на основе утверждений, и она отлично работает. Мы создали ролевые заявки и назначаем роли пользователям. Мы не используем заявки пользователей.
Теперь у меня есть требование, чтобы у пользователей были конкретные претензии. В UserManager есть метод GetUsersByClaimAsync(Claim), который, похоже, учитывает только заявки пользователей. Не претендует на роль. Так что в моем случае его нельзя использовать.
Итак, я думал о получении ролей по требованию, а затем о получении пользователей по ролям (не очень эффективно, поскольку для получения пользователей каждой роли отдельно требуется несколько вызовов БД). Но даже для этого не существует прямого метода получения ролей по утверждениям в UserManager или RoleManager.
Поэтому мне кажется, что нет чистого способа добиться этого, кроме настраиваемых запросов.
Я не уверен, что мне что-то здесь не хватает. Кто-нибудь добился этого, используя лучший способ?
Спасибо
1 ответ
Теперь у меня есть требование, чтобы у пользователей были конкретные претензии. В UserManager есть метод GetUsersByClaimAsync(Claim), который, похоже, учитывает только заявки пользователей. Не претендует на роль. Так что в моем случае его нельзя использовать.
Я думаю, ты мог бы попробовать UserManager<TUser>.GetUsersInRoleAsync(roleName)
api:
var users = await _userManager.GetUsersInRoleAsync("Role1");
Кстати, чтобы использовать вышеуказанный api, вам нужно включить Role
сопутствующие услуги:
AddDefaultIdentity(параметры => {/*...*/}) .AddRoles () .AddEntityFrameworkStores();