Asp.net mvc 5 MVC5和ASPNET标识2.0

Asp.net mvc 5 MVC5和ASPNET标识2.0,asp.net-mvc-5,asp.net-identity-2,Asp.net Mvc 5,Asp.net Identity 2,我愿意接受建议,但我发现,让Identity以最小的努力工作的唯一方法是进行迁移设置: protected override void OnModelCreating(DbModelBuilder modelBuilder) { modelBuilder.Entity<IdentityUser>().HasKey(l => l.Id).ToTable("AspNetUsers"); modelBuilder.Entity<IdentityUserLogin

我愿意接受建议,但我发现,让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");}
模型创建时受保护的覆盖无效(DbModelBuilder modelBuilder)
{
modelBuilder.Entity().HasKey(l=>l.Id).ToTable(“AspNetUsers”);
modelBuilder.Entity().HasKey(l=>l.UserId).ToTable(“AspNetUserLogins”);
modelBuilder.Entity().HasKey(r=>r.Id).ToTable(“AspNetRoles”);
modelBuilder.Entity().HasKey(r=>new{r.RoleId,r.UserId}).ToTable(“AspNetUserRoles”);
modelBuilder.Entity().HasKey(r=>new{r.Id}).ToTable(“AspNetUserClaims”);}
在我将用户数据植入表格之后,我就可以启动我的MVC5 web应用程序,并使用各种帐户登录。我还能够注册新用户和更新现有帐户。一切似乎都很好

我所做的工作是否有长期的负面影响和/或您是否有更干净但整洁的方法让Identity 2.0与MVC5一起工作

编辑:
上下文:我正在迁移多个数据库中的数据,这些数据库都有自己开发的帐户表和安全性,因此我正在创建一个控制台应用程序,从三个数据库中筛选帐户表,以便在控制台应用程序中创建基于身份的帐户,从而为所有历史数据种子。因此,上面的代码驻留在控制台应用程序中,而不是mvc5项目中。一旦历史数据(包括标识表)被植入种子,我有一个单独的解决方案托管一个利用新模式的mvc5 web项目。

我已经在typecast、asp.net和Scott Gu的博客上阅读了许多关于优秀概述的文章,但我找不到任何像我需要的那样简单或实际的东西。

不,但一个更有趣的问题是,为什么你首先要这么做。这些配置都不是必需的,所以您添加的事实以及它的工作可能掩盖了一个更严重的问题。为问题添加了上下文。