Using ASP.NET Core identity, I create a new user with UserManager.CreateAsync()
and assign them to an existing role with UserManager.AddToRoleAsync
. This works, as the realtion between user and role is stored in the AspNetUserRoles
table of the database.
But when I fetch the user using the UserManager (e.g. UserManager.FindByMail()
method) then the Role
list is empty. I also tried the Include
function from EF like this:
var user = userManager.Users.Include(u => u.Roles).FirstOrDefault(u => u.Email == "test@test.de");
This gave me the Ids of the n:m association table, which is not very usefull as I need the role names. Loading them using a second query is also not possible, since the Roles
attribute of the identity user is readonly. I would expect to get a List<string>
of the role-names. Couldn't find any information about this.
For me the only workaround seems to add a custom attribute to my user and fill them with the data, which I fetch using a second query. But thats not a nice solution. Cant belive that ASP.NET Core Identity has no better way of getting those data...