过程数据


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类可以来协助你。这个类接受一个EntityFrameworkServiceOptionsInt32 间隔(单位为秒)来决定多久清理一次过期数据。它会异步连接上数据库,配置方式如下:

var efConfig = new EntityFrameworkServiceOptions {
    ConnectionString = connString,
    //Schema = "foo"
};

var cleanup = new TokenCleanup(efConfig, 10);
cleanup.Start();

你可能感兴趣的:(过程数据)