layout: docs-default
过程数据
很多IdentityServer3的功能需要把过程数据保存到数据库,这些过程数据包括 授权码,更新令牌,参考令牌和用户同意(consent).
注册
有几个存储来保存过程数据,通过IdentityServerServiceFactory
方法来注册.所有的扩展接受EntityFrameworkServiceOptions
参数,它包括下面属性:
-
ConnectionString
: 连接字符串的名字,配置在.config
文件中. -
Schema
: 可选的数据库schema,如果没有提供,那么使用数据库默认schema(一般是dbo.)
配置过程数据的代码如下:
var efConfig = new EntityFrameworkServiceOptions {
ConnectionString = "SomeConnectionName",
//Schema = "someSchemaIfDesired"
};
var factory = new IdentityServerServiceFactory();
factory.RegisterOperationalServices(efConfig);
Data Cleanup
大部分过程数据有过期时间,期望在过期后从数据库中移除。这个可以通过托管IdentityServer的程序来实现,或者通过数据库自己的机制(有几种办法来实现).如果期望一个程序代号来执行清理工作,那么TokenCleanup
类可以来协助你。这个类接受一个EntityFrameworkServiceOptions
和 Int32
间隔(单位为秒)来决定多久清理一次过期数据。它会异步连接上数据库,配置方式如下:
var efConfig = new EntityFrameworkServiceOptions {
ConnectionString = connString,
//Schema = "foo"
};
var cleanup = new TokenCleanup(efConfig, 10);
cleanup.Start();
网友评论