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 f
Its only exposed on the EF implementation layer so:
roleManager.FindByName("Admins").Users
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();
}
I really liked VahidN's solution, but I modified it a bit. I made it into one query that uses the dbcontext. This allows you to add additional clauses into the query (e.g. deleted, emailconfirmed, etc.)
public IEnumerable<ApplicationUser> GetApplicationUsersInRole(string roleName)
{
return from role in context.Roles
where role.Name == roleName
from userRoles in role.Users
join user in context.Users
on userRoles.UserId equals user.Id
where user.EmailConfirmed == true
&& user.IsDeleted == false
select user;
}
I hope this helps! ~Cheers!