我正在尝试使用具有持久数据库的IdentityServer4。我有一个Oracle DB。我计划扩展ConfigurationDbContext
和PersistedGrantDbContext
以进行一些特定的自定义。
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) {
}
}
在启动类中,我告诉IdentityServer使用自定义类?
实现IPersistedGrantStore
,如下所示。并将其添加到ASP.NET Core ServiceCollection(又称DI容器)中。
eg:
services.AddTransient<IPersistedGrantStore, MyPersistedGrantStore>();
MyPersistedGrantStore使用该DBContext进行接口/合同中定义的那些CRUD操作。
它位于IdentityServer4.entityFramework中。添加一个for IdentityServer4.entityFramework.dbcontexts