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; }
}
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);