在 .Net Core 3.1 身份中具有角色的用户列表

User List with Role in .Net Core 3.1 Identity

我能否从 Identity 获取 .Net Core 3.1 中具有相关角色的所有用户的列表?我还没有找到任何有效的解决方案。

您需要自定义身份模型并添加导航属性。

public class ApplicationUser : IdentityUser
{
    public virtual ICollection<ApplicationUserRole> UserRoles { get; set; }
}

然后添加需要的配置。

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    base.OnModelCreating(modelBuilder);


    modelBuilder.Entity<ApplicationUser>(b =>
    {
        // Each User can have many entries in the UserRole join table
        b.HasMany(e => e.UserRoles)
            .WithOne(e => e.User)
            .HasForeignKey(ur => ur.UserId)
            .IsRequired();
    });

    modelBuilder.Entity<ApplicationRole>(b =>
    {
        // Each Role can have many entries in the UserRole join table
        b.HasMany(e => e.UserRoles)
            .WithOne(e => e.Role)
            .HasForeignKey(ur => ur.RoleId)
            .IsRequired();            
    });
}

然后您可以使用联接来查询具有角色的用户。有关添加导航属性的更多信息,请参见 here