【问题标题】:How to integrate ASP.NET Identity tables in an existing database如何在现有数据库中集成 ASP.NET 标识表
【发布时间】:2013-11-23 12:04:59
【问题描述】:
使用 Asp.net 4.5 和 VS 2013,我想知道如何将 Asp.Net Identity Tables 与现有数据库集成。
所以基本上我想在同一个数据库中拥有身份数据库表和我自己的表。
我知道 Asp.Net Identity 使用 Code First 方法,但我想对我现有的数据库使用 DB first 方法。
我有点困惑。
你会怎么处理?
将 Asp.Net 身份表保存在与我自己的表不同的数据库中是否有意义?
【问题讨论】:
标签:
sql-server
asp.net-mvc
entity-framework
entity-framework-6
【解决方案1】:
我认为这在很大程度上取决于您想要实现的目标。
您正在开发的是单个 asp.Net 应用程序,还是使用相同数据库的一组不同应用程序?
Here 有一个我非常同意的答案。一个应用程序/数据库的单独架构和一个数据库。两个数据库在某种程度上胜过分离点,但如果授权规则保持不变,三个数据库可能是更好的解决方案。
关于 DB first 方法,有一篇相当不错的文章(和代码)here。
【解决方案2】:
编辑您的身份模型以覆盖模型创建并指向您已设置的现有表
protected override void OnModelCreating(System.Data.Entity.DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<IdentityUser>().ToTable("Users");
modelBuilder.Entity<ApplicationUser>().ToTable("Users");
modelBuilder.Entity<IdentityUserRole>().ToTable("UserRoles");
modelBuilder.Entity<IdentityUserLogin>().ToTable("UserLogins");
modelBuilder.Entity<IdentityUserClaim>().ToTable("UserClaims");
modelBuilder.Entity<IdentityRole>().ToTable("Roles");
}