none
Configuration.csで作成したユーザーでログインできない RRS feed

  • 質問

  • お世話になります

    visual studio 2015 + MVC5を勉強しています。

    Migrationsフォルダの中にあるConfiguration.csからロールとユーザーを下記の様に記述し

    // ・・・中略

    protected override void Seed(ApplicationDbContext context) { InitializeAspNetTable(context); } public static void InitializeAspNetTable(ApplicationDbContext db) { if (!(db.Roles.Any(r => r.Name == "Admin"))) { var Role = new RoleStore<IdentityRole>(db); var manager = new RoleManager<IdentityRole>(Role); var role = new IdentityRole { Name = "Admin" }; manager.Create(role); } if (!db.Users.Any(u => u.UserName == "Hogehoge")) { var store = new UserStore<ApplicationUser>(db); var manager = new UserManager<ApplicationUser>(store); var user = new ApplicationUser { UserName = @"Hogehoge", Email = @"Eメール" }; manager.Create(user, @"パスワード"); manager.AddToRole(user.Id, "Admin"); } }

    // ・・・中略

    パッケージマネージャ コンソールからUpdate-Databaseを実行するとユーザーとロールは作成されますが、実際にログインするとができない状態です。

    ただし、デバッグ実行経由でのユーザー登録だとログインできます。

    調べると、AccountController.csの

            public async Task<ActionResult> Register(RegisterViewModel model)
            {
                if (ModelState.IsValid)
                {
                    var user = new ApplicationUser { UserName = model.Email, Email = model.Email };
                    var result = await UserManager.CreateAsync(user, model.Password);
                    // ・・・中略
                }
            }

     var result = await UserManager.CreateAsync(user, model.Password);
    をConfiguration.csからコールできれば良いと考えましたが

    Configuration.csから見えているのはUserManager型で

    AccountController.csから見えているのはApplicationUserManager型だというのは分かったのですが

    型解決の問題が自力で解決できませんでした。




    2015年11月4日 17:44

回答

  • 最初のご質問で提示されている2つのコードは、ApplicationUserのインスタンスを作成する処理に違いがあるようです。

    AccountController.csのRegisterアクションでは「UserName = model.Email」となってますが、Configuration.csのコードでは「UserName = @"Hogehoge"」となっています。

    「UserName = @"Hogehoge"」になっている場合はメールアドレスでログインできず、「Hogehoge」ならログインできるのではないかと思います。一度ご確認ください。


    ご参考になれば幸いです。

    • 回答としてマーク s_tsurumaki 2015年11月5日 17:50
    2015年11月5日 10:00

すべての返信