Я использую Identity в проекте с расширенными свойствами В классе ApplicationUser как OrganisationId.Как найти всех пользователей в роли с расширенными свойствами Значение Asp.net Identity 2
Я использую ApplicationUserManager для чтения сведений о пользователе.
вот мой ApplicationUser класс:
public class ApplicationUser
: IdentityUser<int, ApplicationUserLogin,
ApplicationUserRole, ApplicationUserClaim>, IUser<int>
{
public async Task<ClaimsIdentity>
GenerateUserIdentityAsync(UserManager<ApplicationUser, int> manager)
{
var userIdentity = await manager.CreateIdentityAsync(this, DefaultAuthenticationTypes.ApplicationCookie);
userIdentity.AddClaim(new Claim("OrganisationId", OrganisationId.ToString()));
return userIdentity;
}
public int OrganisationId { get; set; }
}
А в классе AccountController я впрыснуть объект ApplicationUserManager.
Тогда пользовательский объект-менеджер дает мне способ найти пользователя в роли или нет.
var isUserAdmin = await _userManager.IsInRoleAsync(userId, adminRoleName);
Но мне нужен способ найти всех пользователей, у которых есть права администратора в организации.
Что-то вроде этого:
_userManager.Users.Where(u=>u.OrganisationId=1 && u.Roles.Contains(adminRole))
Но это не работает, как ролям является сбор ApplicationUserRole.
Любая идея, как мне удалось получить всех пользователей-администраторов в организации?
http://www.stackoverflow.com/questions/26894327/asp-net-identity-2-1-get-all-users-with-roles – Hackerman