Table 将 Identity Server 4 和 Entity Framework 核心集成在一起时发生冲突
Table confilict while integrating Identity Server 4 and Entity Framework Core together
我用命令“dotnet new angular …”生成了一个 dotnet 核心项目。具有个人帐户身份验证选项。
dotnet 核心已生成一个项目,其应用程序数据上下文如下所示。
public class ApplicationDbContext : ApiAuthorizationDbContext<ApplicationUser>
{
public ApplicationDbContext(
DbContextOptions<ApplicationDbContext> options,
IOptions<OperationalStoreOptions> operationalStoreOptions) : base(options, operationalStoreOptions)
{
}
}
我想将身份服务器 4 集成到同一项目中,并在 api 控制器的同一实例上提供服务。我按照下面链接的指南将配置和操作存储存储在 ef 数据库中。
http://docs.identityserver.io/en/latest/reference/ef.html
我发现,DeviceCodes 和 Persisted Grant table 已经存在于数据库中。当我尝试迁移数据库以满足 Operational Store 的要求时。
我查看了 ef 源代码,ApiAuthorizationDbContext class 已经包含这些 tables 以支持身份服务器。
现在我不太确定哪个是最好的解决方案
(1) 我是否应该切换 ApplicationDbContext 以扩展 IdentityDbContext 而不是 ApiAuthorizationDbContext 并完全使用上面指南中描述的方式?
(2) 或者我应该跳过与 OperationalStore DbContext 相关的步骤,让身份服务器 4 使用 ApiAuthorizationDbContext 提供的现有 tables 吗?我怎样才能把它们放在一起?
最佳做法是什么?非常感谢您。
在我的应用程序中,我将 source-code 用于 IdentitServer4 entitframework 核心 NuGet 包,并将它们添加到我的 IdentityServer 项目中(在单独的 class 库中)。
通过这样做,我可以控制它的实现方式并 how/when 应用迁移。这样可以更轻松地根据需要对其进行自定义。
然后为 IdentityServer 和您的应用程序需求提供单独的上下文也可以很好地分离关注点。
我用命令“dotnet new angular …”生成了一个 dotnet 核心项目。具有个人帐户身份验证选项。 dotnet 核心已生成一个项目,其应用程序数据上下文如下所示。
public class ApplicationDbContext : ApiAuthorizationDbContext<ApplicationUser>
{
public ApplicationDbContext(
DbContextOptions<ApplicationDbContext> options,
IOptions<OperationalStoreOptions> operationalStoreOptions) : base(options, operationalStoreOptions)
{
}
} 我想将身份服务器 4 集成到同一项目中,并在 api 控制器的同一实例上提供服务。我按照下面链接的指南将配置和操作存储存储在 ef 数据库中。 http://docs.identityserver.io/en/latest/reference/ef.html
我发现,DeviceCodes 和 Persisted Grant table 已经存在于数据库中。当我尝试迁移数据库以满足 Operational Store 的要求时。 我查看了 ef 源代码,ApiAuthorizationDbContext class 已经包含这些 tables 以支持身份服务器。
现在我不太确定哪个是最好的解决方案 (1) 我是否应该切换 ApplicationDbContext 以扩展 IdentityDbContext 而不是 ApiAuthorizationDbContext 并完全使用上面指南中描述的方式? (2) 或者我应该跳过与 OperationalStore DbContext 相关的步骤,让身份服务器 4 使用 ApiAuthorizationDbContext 提供的现有 tables 吗?我怎样才能把它们放在一起? 最佳做法是什么?非常感谢您。
在我的应用程序中,我将 source-code 用于 IdentitServer4 entitframework 核心 NuGet 包,并将它们添加到我的 IdentityServer 项目中(在单独的 class 库中)。
通过这样做,我可以控制它的实现方式并 how/when 应用迁移。这样可以更轻松地根据需要对其进行自定义。
然后为 IdentityServer 和您的应用程序需求提供单独的上下文也可以很好地分离关注点。