【问题标题】: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

    【讨论】:

    • 题主原问题可以回答吗?在这个投票答案中,最后一个问题是关于一两台服务器的回答。但不是标题中的那个。我希望在已经工作的数据库中拥有我的 IdentityUser 表。请问有人可以回答吗? DB First 方法不包括这一点。我又提出了一个问题:stackoverflow.com/questions/38082443/…。谢谢。
    【解决方案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");
        }
    

    【讨论】:

      猜你喜欢
      • 2014-02-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-10
      • 1970-01-01
      • 2015-01-24
      • 2021-10-16
      • 2023-04-04
      相关资源
      最近更新 更多