I'm using ASP.NET MVC with Identity to secure my web application. I have created a "canEdit" role and have 5 users that I want to seed in the database.
I originally tried this as:
bool AddUserAndRole(ERPWAG.Models.ApplicationDbContext context)
{
IdentityResult ir;
var rm = new RoleManager<IdentityRole>(new RoleStore<IdentityRole>(context));
ir = rm.Create(new IdentityRole("canEdit"));
var um = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(context));
var user = new ApplicationUser()
{
UserName = "user1@email.com",
};
ir = um.Create(user, "password");
if (ir.Succeeded == false)
return ir.Succeeded;
ir = um.AddToRole(user.Id, "canEdit");
return ir.Succeeded;
var user2 = new ApplicationUser()
{
UserName = "user2@email.com",
};
ir = um.Create(user, "password");
if (ir.Succeeded == false)
return ir.Succeeded;
ir = um.AddToRole(user2.Id, "canEdit");
return ir.Succeeded;
var user3 = new ApplicationUser()
{
UserName = "user3@email.com",
};
ir = um.Create(user, "password");
if (ir.Succeeded == false)
return ir.Succeeded;
ir = um.AddToRole(user3.Id, "canEdit");
return ir.Succeeded;
var user4 = new ApplicationUser()
{
UserName = "user4@email.com",
};
ir = um.Create(user, "password!");
if (ir.Succeeded == false)
return ir.Succeeded;
ir = um.AddToRole(user4.Id, "canEdit");
return ir.Succeeded;
var user5 = new ApplicationUser()
{
UserName = "user5@email.com",
};
ir = um.Create(user, "password");
if (ir.Succeeded == false)
return ir.Succeeded;
ir = um.AddToRole(user5.Id, "canEdit");
return ir.Succeeded;
}
I then called AddUserAndrole(context)
in my Seed method of Configuration.cs, called update-database and published.
My users were unable to login to the site. What is the best way to pre-populate the identity database with these users and associate them with the role?