I\'m having an issue seeding my database with users and roles.
The User and the Role are both created (I can see them in the database after the error is thrown).
I found out the solution, in case anyone else is having this problem.
The "IsInRole" is expecting a User.Id - not a UserName string - so I changed to:
if (!userManager.IsInRole(user.Id, "Admin"))
{
userManager.AddToRole(user.Id, "Admin");
}
So the working code becomes:
ApplicationDbContext userscontext = new ApplicationDbContext();
var userStore = new UserStore(userscontext);
var userManager = new UserManager(userStore);
var roleStore = new RoleStore(userscontext);
var roleManager = new RoleManager(roleStore);
// Create Role
if (!roleManager.RoleExists("Admin"))
{
roleManager.Create(new IdentityRole("Admin"));
}
if(!userscontext.Users.Any(x=> x.UserName=="marktest"))
{
// Create User
var user = new ApplicationUser { UserName = "marktest", Email = "marktest@gmail.com" };
userManager.Create(user, "Pa$$W0rD!");
// Add User To Role
if (!userManager.IsInRole(user.Id, "Admin"))
{
userManager.AddToRole(user.Id, "Admin");
}
}
I hope that helps,
Mark