Entités génériques ET utilisateurs, rôles?

Comment créer les utilisateurs, les rôles et les entités spécifiques aux applications? Il semble que IdentityModel cible son propre contexte?

internal sealed class Configuration : DbMigrationsConfiguration { public Configuration() { AutomaticMigrationsEnabled = false; } protected override void Seed(Project.Models.SchoolContext context) { // Seed the Entities // context.People.AddOrUpdate( // p => p.FullName, // new Person { FullName = "Andrew Peters" } // ); // } } 

contre.

 protected override void Seed(Project.Models.ApplicationDbContext context) { if (!context.Roles.Any(r => r.Name == "AppAdmin")) { var store = new RoleStore(context); var manager = new RoleManager(store); var role = new IdentityRole { Name = "AppAdmin" }; manager.Create(role); } if (!context.Users.Any(u => u.UserName == "founder")) { var store = new UserStore(context); var manager = new UserManager(store); var user = new ApplicationUser {UserName = "founder"}; manager.Create(user, "ChangeItAsap!"); manager.AddToRole(user.Id, "AppAdmin"); } } 

Je ne sors pas de la migration, j’utilise plutôt l’initialiseur de firebase database de contexte. Mon contexte dérive d’IdentityDbContext, j’utilise donc cette méthode pour créer des utilisateurs et des rôles:

Appel et initialiseur de ctor:

 public class ApplicationDbContext : IdentityDbContext { private readonly IHttpContextBaseWrapper _httpContextBaseWrapper; static ApplicationDbContext() { // Set the database intializer which is run once during application start // This seeds the database with admin user credentials and admin role Database.SetInitializer(new ApplicationDbInitializer()); } ... 

Puis mon code de départ:

 public class ApplicationDbInitializer : CreateDatabaseIfNotExists { protected override void Seed(ApplicationDbContext context) { InitializeIdentityForEF(context); base.Seed(context); } public static void InitializeIdentityForEF(ApplicationDbContext db) { if (!db.Users.Any()) { var roleStore = new RoleStore(db); var roleManager = new RoleManager(roleStore); var userStore = new UserStore(db); var userManager = new UserManager(userStore); // Add missing roles var role = roleManager.FindByName("Admin"); if (role == null) { role = new IdentityRole("Admin"); roleManager.Create(role); } // Create test users var user = userManager.FindByName("admin"); if (user == null) { var newUser = new ApplicationUser() { UserName = "admin", FirstName = "Admin", LastName = "User", Email = "[email protected]", PhoneNumber = "5551234567", MustChangePassword = false }; userManager.Create(newUser, "Password1"); userManager.SetLockoutEnabled(newUser.Id, false); userManager.AddToRole(newUser.Id, "Admin"); } ...