Get list of users with assigned roles in asp.net identity 2.0

后端 未结 8 1992
你的背包
你的背包 2020-12-23 21:13

I have a drop down list box which lists roles. I want to get the list of users having that role. I mean list of users that are in \"Administrator\" role or \"CanEdit\" role.

相关标签:
8条回答
  • 2020-12-23 21:40

    I find the role by the role name input. After, I find list users by id of the role.

    public List<ApplicationUser> GetUsersInRole(string roleName)
    {
     var roleManager = 
      new RoleManager<IdentityRole>(new RoleStore<IdentityRole>(new  ApplicationDbContext()));
     var role = roleManager.FindByName(roleName).Users.First();
     var usersInRole = 
      Users.Where(u => u.Roles.Select(r => r.RoleId).Contains(role.RoleId)).ToList();
     return usersInRole;
    }
    
    0 讨论(0)
  • 2020-12-23 21:41

    Remove the .Email and add UserName or whatever was added to the ASPNetUsers for name.

    private void AddAddminToMail(MailMessage message)
    {
        var roles = db.Roles.Include(m => m.Users).Where(m => m.Name == "Admin").First();
        foreach (var user in roles.Users)
            {
                var id = user.UserId;
                var userEmail = db.Users.Find(id).Email;
                message.To.Add(userEmail);
            }      
    }
    
    0 讨论(0)
提交回复
热议问题