我使用命令“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 表已经存在于数据库中。而我尝试迁移数据库以满足操作存储的要求。我查看了 ef 源代码,ApiAuthorizationDbContext 类已经包含这些表来支持 Identity Server。
现在我不太确定哪个是最好的解决方案 (1) 我应该切换 ApplicationDbContext 来扩展 IdentityDbContext 而不是 ApiAuthorizationDbContext 并完全使用上面指南中描述的方式吗?(2) 还是应该跳过与 OperationalStore DbContext 相关的步骤,让身份服务器 4 使用 ApiAuthorizationDbContext 提供的现有表?我怎样才能把它们放在一起?最佳做法是什么?非常感谢您提前。
在我的应用程序中,我获取了 IdentitServer4 entitframework 核心 NuGet 包的源代码,并将它们添加到我的 IdentityServer 项目中(在一个单独的类库中)。
通过这样做,我可以控制它的实现方式以及如何/何时应用迁移。这样可以更轻松地根据需要对其进行自定义。
然后为 IdentityServer 和您的应用程序需求提供单独的上下文也可以很好地分离关注点。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句