【发布时间】:2015-05-29 12:16:00
【问题描述】:
我愿意接受建议,但我发现让 Identity 以最小的努力工作的唯一方法是进行这样的迁移设置:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<IdentityUser>().HasKey(l => l.Id).ToTable("AspNetUsers");
modelBuilder.Entity<IdentityUserLogin>().HasKey<string>(l => l.UserId).ToTable("AspNetUserLogins");
modelBuilder.Entity<IdentityRole>().HasKey<string>(r => r.Id).ToTable("AspNetRoles");
modelBuilder.Entity<IdentityUserRole>().HasKey(r => new { r.RoleId, r.UserId }).ToTable("AspNetUserRoles");
modelBuilder.Entity<IdentityUserClaim>().HasKey(r => new { r.Id }).ToTable("AspNetUserClaims");}
在我用用户数据植入表格后,我就能够启动我的 MVC5 Web 应用程序并像使用各种帐户一样登录。我还能够注册新用户并更新现有帐户。一切似乎都很好。
对我所做的事情是否有长期的负面影响和/或您是否有一种更简洁但整洁的方法来让 Identity 2.0 与 MVC5 一起使用?
编辑: 上下文:我正在从具有本地帐户表和安全性的多个数据库中迁移数据,因此我正在创建一个控制台应用程序,该应用程序从三个数据库中剔除帐户表,以便在控制台应用程序中创建基于身份的帐户种子所有的历史数据。所以上面的代码驻留在控制台应用程序中,而不是 mvc5 项目中。播种历史数据(包括身份表)后,我有一个单独的解决方案来托管一个使用新架构的 mvc5 Web 项目。
【问题讨论】:
-
不,但一个更有趣的问题是,为什么您首先需要这样做。这些配置都不是必需的,因此您添加然后它工作的事实可能掩盖了一个更严重的问题。
-
为问题添加了上下文。
标签: asp.net-mvc-5 asp.net-identity-2