How to get the ID of Roles for which a user is enrolled in MVC 5

Zapnologica picture Zapnologica · Feb 4, 2014 · Viewed 10.7k times · Source

I am trying to get an IList<ApplicationRole> of roles in which a user is currently enrolled.

Now in the Usermanager class I see there is a function call IList<String> usersRoles = userManager.GetRoles(id); But it just returns the name of the Role as a string. This doesn't help me as I need the id , name and the description of the role.

How can I make a similar call but receive an applicationRole back and not a string?

here is my model:

   public class ApplicationRole : IdentityRole
{
    [Display(Name = "Description")]
    [StringLength(100, MinimumLength = 5)]
    public string Description { get; set; }

}

Answer

Chris Pratt picture Chris Pratt · Feb 4, 2014

I think you're looking for RoleManager. It's very similar in form and function to UserManager, but is specifically intended for CRUD with roles.

var RoleManager = new RoleManager<IdentityRole>(new RoleStore<IdentityRole>(context));

Where context is an instance of your DbContext.

Then, you can do:

var role = await RoleManager.FindByIdAsync(roleId);

Or

var role = await RoleManager.FindByNameAsync(roleName);