种子用户帐户 MVC5 上的用户名或密码无效
Invalid Username or password on Seeded User Account MVC5
我正在使用我专门构建的新 MVC5 应用程序来测试它。
我有 两个 数据库上下文。 ApplicationDbContext
的 configuration.cs
如下:
using FB.DOMAIN.Authentication;
using Microsoft.AspNet.Identity;
using Microsoft.AspNet.Identity.EntityFramework;
using System.Data.Entity.Migrations;
namespace FB.DAL.Migrations.ApplicationDbContext
{
internal sealed class Configuration : DbMigrationsConfiguration<DataContexts.ApplicationDbContext>
{
public Configuration()
{
AutomaticMigrationsEnabled = false;
MigrationsDirectory = @"Migrations\ApplicationDbContext";
}
protected override void Seed(DataContexts.ApplicationDbContext context)
{
var roleManager = new RoleManager<IdentityRole>(new RoleStore<IdentityRole>(context));
var userManager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(context));
if (!roleManager.RoleExists("Admin"))
{
roleManager.Create(new IdentityRole("Admin"));
}
var user = new ApplicationUser { UserName = "james@world.com" };
if (userManager.FindByName("james@world.com") != null) return;
var result = userManager.Create(user, "Password123!");
if (result.Succeeded)
{
userManager.AddToRole(user.Id, "Admin");
}
}
}
}
上面的代码不应该为我的数据库添加一个用户吗?可惜没有!当我查询AspNetUsers
table时,它是空白的!
我做错了什么? :(
我无法让两个独立的上下文对话。所以我关注了 LukeP 的 solution here.
包含我所有相关域逻辑的单一上下文。
我正在使用我专门构建的新 MVC5 应用程序来测试它。
我有 两个 数据库上下文。 ApplicationDbContext
的 configuration.cs
如下:
using FB.DOMAIN.Authentication;
using Microsoft.AspNet.Identity;
using Microsoft.AspNet.Identity.EntityFramework;
using System.Data.Entity.Migrations;
namespace FB.DAL.Migrations.ApplicationDbContext
{
internal sealed class Configuration : DbMigrationsConfiguration<DataContexts.ApplicationDbContext>
{
public Configuration()
{
AutomaticMigrationsEnabled = false;
MigrationsDirectory = @"Migrations\ApplicationDbContext";
}
protected override void Seed(DataContexts.ApplicationDbContext context)
{
var roleManager = new RoleManager<IdentityRole>(new RoleStore<IdentityRole>(context));
var userManager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(context));
if (!roleManager.RoleExists("Admin"))
{
roleManager.Create(new IdentityRole("Admin"));
}
var user = new ApplicationUser { UserName = "james@world.com" };
if (userManager.FindByName("james@world.com") != null) return;
var result = userManager.Create(user, "Password123!");
if (result.Succeeded)
{
userManager.AddToRole(user.Id, "Admin");
}
}
}
}
上面的代码不应该为我的数据库添加一个用户吗?可惜没有!当我查询AspNetUsers
table时,它是空白的!
我做错了什么? :(
我无法让两个独立的上下文对话。所以我关注了 LukeP 的 solution here.
包含我所有相关域逻辑的单一上下文。