具有持久数据库的 IdentityServer4

IdentityServer4 with persistent database

我正在尝试将 IdentityServer4 与持久数据库一起使用。我有一个 Oracle 数据库。我计划扩展 ConfigurationDbContextPersistedGrantDbContext 以进行一些特定于 Oracle 的定制。

PersistedGrantDbContext

 public class IdentityPersistedGrantDbContext : PersistedGrantDbContext {
    public IdentityPersistedGrantDbContext(DbContextOptions<PersistedGrantDbContext> options, OperationalStoreOptions storeOptions)
         : base(options, storeOptions) {
    }
}

ConfigurationDbContext

public class IdentityConfigurationDbContext : ConfigurationDbContext {
    public IdentityConfigurationDbContext(DbContextOptions<ConfigurationDbContext> options, ConfigurationStoreOptions storeOptions)
         : base(options, storeOptions) {
    }
}

在启动 class 中,我告诉 IdentityServer 使用自定义 classes?

按照 here 实施 IPersistedGrantStore。并将其添加到 ASP.NET Core ServiceCollection(又名 DI 容器)。

例如:

        services.AddTransient<IPersistedGrantStore, MyPersistedGrantStore>();

其中 MyPersistedGrantStore 使用 DbContext 执行 interface/contract 中定义的那些 CRUD 操作。

它位于 IdentityServer4.EntityFramework。为 IdentityServer4.EntityFramework.DbContexts

添加一条 using 语句