.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  ();
Другие вопросы по тегам