如何在现有数据库中集成ASP.NET标识表

时间:2013-11-23 12:04:59

标签: sql-server asp.net-mvc entity-framework entity-framework-6

使用Asp.net 4.5和VS 2013,我想知道如何将Asp.Net Identity Tables与现有数据库集成。

所以基本上我想在同一个数据库中拥有Identity表和我自己的表的数据库表。

我知道Asp.Net Identity使用Code First方法,但我想对我现有的数据库使用DB第一种方法。 我有点困惑。

你会如何处理?

将Asp.Net Identity Tables保存在与我自己的表不同的数据库中是否有意义?

2 个答案:

答案 0 :(得分:2)

我认为这很大程度上取决于你想要实现的目标。

您正在开发的是一个单独的asp.Net应用程序,还是一组使用相同数据库的不同应用程序?

Here有一个我非常同意的答案。为一个应用程序/数据库分隔模式和一个数据库。如果授权规则保持不变,那么两个数据库就会超越分离点,但三个数据库可能是更好的解决方案。

至于DB第一种方法,有一篇非常好的文章(和代码)here

答案 1 :(得分:0)

编辑您的identitymodel以覆盖模型创建并指向您已设置的现有表

        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");
    }