Jak dodać użytkowników do pustej bazy?
Rozwiązanie zaczerpnięte z http://stackoverflow.com/questions/19280527/mvc5-seed-users-and-roles
1. Dodaj poniższą metodę do \Migrations\Configuration.cs oraz jej wywołanie w metodzie Seed.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
void AddUsers(ConexxPanel.Models.ApplicationDbContext context) { const string AppAdminRole = "ApplicationAdmin"; const string AppAdminUsername = "admin"; if (!context.Roles.Any(r => r.Name == AppAdminRole)) { var store = new RoleStore<IdentityRole>(context); var manager = new RoleManager<IdentityRole>(store); var role = new IdentityRole { Name = AppAdminRole }; manager.Create(role); } if (!context.Users.Any(u => u.UserName == AppAdminUsername)) { var store = new UserStore<ApplicationUser>(context); var manager = new UserManager<ApplicationUser>(store); var user = new ApplicationUser { UserName = AppAdminUsername }; manager.Create(user, "SomePassword!"); manager.AddToRole(user.Id, AppAdminRole); } } |
2. Przekompiluj projekt
3 Uruchom komendę „Update-Database –Verbose” w Package Manager Console. Powinna ona dać wynik mniej więcej taki:
PM> Update-Database –Verbose
Using StartUp project 'MyProjectName’.
Using NuGet project 'MyProjectName’.
Specify the ’-Verbose’ flag to view the SQL statements being applied to the target database.
Target database is: 'aspnet-MyProjectName-20140302072009′ (DataSource: (LocalDb)\v11.0, Provider: System.Data.SqlClient, Origin: Configuration).
No pending explicit migrations.
Running Seed method.
Kluczowa jest ostatnia linijka