在具有相同上下文的同一数据库中两次使用ASP.NET Identity

时间:2018-03-02 16:13:44

标签: entity-framework asp.net-core-mvc asp.net-identity entity-framework-core

我有一个包含三个项目的Visual Studio解决方案。一个是DAL(数据访问层)女巫正在使用Entity Framework Core和一个ApplicationDbContext。 我在另一个(第二个项目)中引用了它是一个后端面板,用户将使用活动目录进行身份验证,用户和角色将在ASP.NET身份的帮助下进行管理。

我创建了另一个ASP.NET Core项目(网站 - 第三个项目),用于分离面板和网站。这里也引用了DAL项目。 我想将网站的用户存储在与后端面板项目相同的数据库中,但我想为后端用户和网站用户分别使用表。

在网站项目中,我创建了另一个ApplicationDbContext,在OnModelCreating中,我覆盖了具有与AspNet不同的前缀的标识表的默认名称。 ApplicationDbContext的数据库连接字符串相同。我完成了Add-Migration Inital,然后更新了数据库Update-Database。我在同一个数据库中使用带有AspNet前缀的新前缀获得新表 到目前为止一切都很好。

我面临的问题是,使用两种不同的上下文查询数据库并不简单。

所以我的问题是:是否可以在具有相同上下文的同一数据库中两次使用ASP.NET Identity?

我愿意接受其他解决方案来实现我的需要。

1 个答案:

答案 0 :(得分:1)

没有。在同一上下文中不可能有两个单独的Identity表和类实例。您使用单独的上下文执行此操作的方式是最好的方法。如果您想简化访问,我建议您创建一个或多个注入两个上下文的服务样式类。然后,您可以简单地将服务类注入到您的应用程序中,并通过它只使用一件事。您当然需要编写与您的两种情境相互作用的方法,但是您只需要做一次,然后就可以从中获益。