C# 如何查找具有扩展属性值Asp.net Identity 2的角色中的所有用户

C# 如何查找具有扩展属性值Asp.net Identity 2的角色中的所有用户,c#,asp.net,asp.net-mvc-5,identity,C#,Asp.net,Asp.net Mvc 5,Identity,我在一个项目中使用标识,该项目在ApplicationUser类中具有扩展属性作为OrganizationID 我正在使用ApplicationUserManager阅读用户详细信息 这是我的ApplicationUser类: public class ApplicationUser : IdentityUser<int, ApplicationUserLogin, ApplicationUserRole, ApplicationUserClaim>, IUs

我在一个项目中使用标识,该项目在ApplicationUser类中具有扩展属性作为OrganizationID

我正在使用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; }
}
但我需要的是一种方法,找到在组织中拥有管理员权限的所有用户

大概是这样的:

_userManager.Users.Where(u=>u.OrganisationId=1 && u.Roles.Contains(adminRole))
但这不起作用,因为角色是ApplicationUserRole的集合

你知道我怎样才能得到一个组织中所有的管理员用户吗

只需使用:

u.Roles.Any(m => m.RoleId == adminRole.Id)

相反。

相关:非常感谢。这个很好用。唯一的问题是我必须先查询才能找到角色Id,而不能只使用角色名称。是的。不幸的是,没有办法解决这个问题。
u.Roles.Any(m => m.RoleId == adminRole.Id)