Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to get all users in Role (Microsoft ASP.NET Identity EntityFramework 2.0.0-beta1)?

I just updated to ASP.NET Identity EntityFramework 2.0.0-beta1 and got a compilation errors for my Roles classes. Maybe somebody can give me some clue how to get all users for a specific Role?

It's something very close, when I browse with Intellisense I am almost there, but need a tip :-).

This is how it worked before update:

 user.Roles.First().Role.Name.Equals("Admins")
like image 571
Svitlana Avatar asked Mar 05 '14 20:03

Svitlana


2 Answers

Its only exposed on the EF implementation layer so:

roleManager.FindByName("Admins").Users
like image 71
Hao Kung Avatar answered Oct 13 '22 16:10

Hao Kung


The accepted answer returns CustomUserRoles. If you are looking for the list of ApplicationUsers, try:

public IList<ApplicationUser> GetApplicationUsersInRole(string roleName)
{
    var selectedUserIds = from role in roleManager.Roles
                          where role.Name == roleName
                          from user in role.Users
                          select user.UserId;
    // this _users comes from the ApplicationDbContext.ApplicationUser
    return _users.Where(applicationUser => selectedUserIds.Contains(applicationUser.Id)).ToList();
}
like image 22
VahidN Avatar answered Oct 13 '22 17:10

VahidN