Seedで新規ロールとユーザーを登録する。
ModelsのIdentityModelsにIdentityRoleを継承したロールクラスを追加する。
IdentityModels.cs
public class ApplicationRole : IdentityRole { public ApplicationRole() : base() { } public ApplicationRole(string pRoleName) : base(pRoleName) { } }
- ApplicationUserクラスのこの中に存在する。
SeedにRoleManager、UserManagerを生成し、ロールとユーザーを追加する。
Configuration.cs
using Microsoft.AspNet.Identity; using Microsoft.AspNet.Identity.EntityFramework; using WebApplication1.Models; protected override void Seed(InventoryManagementWeb.Models.ApplicationDbContext context) { // ロールを管理 var roleManager = new RoleManager<ApplicationRole>(new RoleStore<ApplicationRole>(context)); // ロールを追加 roleManager.Create(new ApplicationRole("HeadOffice")); roleManager.Create(new ApplicationRole("Branch")); roleManager.Create(new ApplicationRole("Admin")); // ユーザを管理 var userManager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(context)); // ユーザを追加 var user = new ApplicationUser { UserName = "admin", Email = "admin" }; var result = userManager.Create(user, "Abcd1234@admin"); // ユーザもAdmin権限を追加 var admin = userManager.FindByName("admin"); userManager.AddToRole(admin.Id, "Admin"); // 変更をコミット context.SaveChanges(); }
NugetPackageManagerでマイグレーションアップデートを実施
PM> update-database ターゲット データベースに適用されている SQL ステートメントを表示するには、'-Verbose' フラグを指定します。 明示的な移行を適用しています: [201508180217518_Initial]。 明示的な移行を適用しています: 201508180217518_Initial。 Seed メソッドを実行しています。 PM>