0

问题

下面的代码获取用户的角色,但不获取该特定角色的用户。有什么遗漏吗?

代码

    public void SeedRolesData(PartnerDbContext context)
    {
        if (!context.Roles.Any())
        {
            context.Roles.AddRange(this.Roles);
            context.SaveChanges();
        }
    }

    public void SeedUserRoles(PartnerDbContext context)
    {
        if (!context.UserRoles.Any())
        {
            context.UserRoles.AddRange(this.UserRolesMapping);
            context.SaveChanges();
        }
    }

    public List<IdentityRole> Roles => new List<IdentityRole>
    {
        new IdentityRole { Id="1", Name = ApplicationDefaultRoles.admin }
    };

    public List<IdentityUserRole<string>> UserRolesMapping => new List<IdentityUserRole<string>>
    {
        new IdentityUserRole<string> { UserId = "1", RoleId = "1" }
    };

按用户获取角色和按角色获取用户

   var roles = userManager.GetRolesAsync(new User() {
    Id = "1",
    UserTypeId = (int)UserTypeEnum.admin,
    FirstName = "Sam",
    LastName = "Ram"
   }).Result; --> Returns result

   var user= userManager.GetUsersInRoleAsync(ApplicationDefaultRoles.admin).Result; --> Returns empty list.
4

1 回答 1

0

角色的示例数据还应包括 NormalizedName 以获取角色中的用户。以下是更新的示例角色数据。

    public List<IdentityRole> Roles => new List<IdentityRole>
    {
        new IdentityRole {
        Id="1", 
        Name = ApplicationDefaultRoles.admin, 
        NormalizedName = ApplicationDefaultRoles.admin.ToUpperInvariant() }
    };
于 2020-06-25T02:58:05.553 回答