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

问题描述 投票:0回答:1

我有一个包含三个项目的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?

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

entity-framework asp.net-core-mvc asp.net-identity entity-framework-core
1个回答
0
投票

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

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.