【发布时间】:2013-11-13 17:56:06
【问题描述】:
我正在尝试为我的 MVC 5 Web 应用程序设置一些种子数据,但它似乎没有为 IdentityUser 创建任何种子数据。当我检查 App_Data 文件夹时,它是空的(启用显示所有文件)
这是我的 WebAppDatabaseInitializer.cs
public class WebAppDatabaseInitializer : DropCreateDatabaseIfModelChanges<WebAppDbContext>
{
protected override void Seed(WebAppDbContext context)
{
var UserManager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(context));
var RoleManager = new RoleManager<IdentityRole>(new RoleStore<IdentityRole>(context));
string name = "Admin";
string password = "123456";
string test = "test";
//Create Role Test and User Test
RoleManager.Create(new IdentityRole(test));
UserManager.Create(new ApplicationUser() { UserName = test });
//Create Role Admin if it does not exist
if (!RoleManager.RoleExists(name))
{
var roleresult = RoleManager.Create(new IdentityRole(name));
}
//Create User=Admin with password=123456
var user = new ApplicationUser();
user.UserName = name;
var adminresult = UserManager.Create(user, password);
//Add User Admin to Role Admin
if (adminresult.Succeeded)
{
var result = UserManager.AddToRole(user.Id, name);
}
base.Seed(context);
}
}
还有我的 Global.asax.cs
public class MvcApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
GlobalConfiguration.Configure(WebApiConfig.Register);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
Database.SetInitializer(new WebAppDatabaseInitializer());
}
}
有什么想法可能出了什么问题?
【问题讨论】:
-
有什么问题吗?你能以管理员身份登录吗? Seed() 是否在调试器中命中?
-
尝试使用该帐户登录时出现错误:无法附加文件 'D:\Libraries\Documents\Visual Studio 2013\Repo\WebApp\WebApp\WebApp.Web\App_Data\aspnet- WebApp-20131019024822.mdf' 作为数据库 'aspnet-WebApp-20131019024822'。
-
这里是堆栈跟踪:pastebin.com/TDW3MZWw
-
除了“提供商无法打开”之外,我找不到任何相关的内容。也许先尝试使用简单的 Db(不是 Identity)进行复制。
-
即使禁用种子并尝试注册用户也会给我同样的错误,来源是:第 79 行:{ 第 80 行:var user = new ApplicationUser() { UserName = model.UserName };第 81 行:var result = await UserManager.CreateAsync(user, model.Password);第 82 行:if (result.Succeeded) 第 83 行:{
标签: c# entity-framework asp.net-mvc-5 asp.net-identity