Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Get Role name in IdentityUserRole 2.0 in ASP.NET

Before the update of the dll's in the Entity Framework i was able to do this

user.Roles.Where(r => r.Role.Name == "Admin").FisrtOrDefault(); 

Now, i can only do r.RoleId, and i can't find a way to retreive the name of thar Role Id. I'm using this in my controllers and in my AuthorizeAttribute class.

Can someone help me here?

Regards

like image 744
MarBVI Avatar asked Jun 05 '15 15:06

MarBVI


2 Answers

I've just had almost exactly the same issue and I solved it like this:

public class UserRole : IdentityUserRole
{
    public virtual Role Role { get; set; } // add this to see roles
    public virtual User User { get; set; } // add this to see users
}

Now your original code user.Roles.Where(r => r.Role.Name == "Admin").FirstOrDefault(); will work, which could be handy if you don't have easy access to the RoleManager for any reason.

like image 86
Ed Graham Avatar answered Oct 16 '22 21:10

Ed Graham


Try this

string id = UserManager.FindByEmail(model.Email).Id;
IList<string> roleNames=UserManager.GetRoles(id);
like image 43
Neeraj Singh Avatar answered Oct 16 '22 23:10

Neeraj Singh