ハロの外部記憶インターフェイス

そろそろ覚える努力が必要かも…

Seedで新規ロールとユーザーを登録する。

ModelsのIdentityModelsにIdentityRoleを継承したロールクラスを追加する。

IdentityModels.cs

    public class ApplicationRole : IdentityRole
    {
        public ApplicationRole() : base()
        {
        }

        public ApplicationRole(string pRoleName) : base(pRoleName)
        {
        }
    }
  1. 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> 

参考:http://www.asystem-design.co.jp/blog/?p=129