layout: docs-default
過程數(shù)據(jù)
很多IdentityServer3的功能需要把過程數(shù)據(jù)保存到數(shù)據(jù)庫,這些過程數(shù)據(jù)包括 授權(quán)碼却舀,更新令牌,參考令牌和用戶同意(consent).
注冊(cè)
有幾個(gè)存儲(chǔ)來保存過程數(shù)據(jù)伶氢,通過IdentityServerServiceFactory
方法來注冊(cè).所有的擴(kuò)展接受EntityFrameworkServiceOptions
參數(shù)俊嗽,它包括下面屬性:
-
ConnectionString
: 連接字符串的名字,配置在.config
文件中. -
Schema
: 可選的數(shù)據(jù)庫schema英融,如果沒有提供盏檐,那么使用數(shù)據(jù)庫默認(rèn)schema(一般是dbo.)
配置過程數(shù)據(jù)的代碼如下:
var efConfig = new EntityFrameworkServiceOptions {
ConnectionString = "SomeConnectionName",
//Schema = "someSchemaIfDesired"
};
var factory = new IdentityServerServiceFactory();
factory.RegisterOperationalServices(efConfig);
Data Cleanup
大部分過程數(shù)據(jù)有過期時(shí)間,期望在過期后從數(shù)據(jù)庫中移除驶悟。這個(gè)可以通過托管IdentityServer的程序來實(shí)現(xiàn)胡野,或者通過數(shù)據(jù)庫自己的機(jī)制(有幾種辦法來實(shí)現(xiàn)).如果期望一個(gè)程序代號(hào)來執(zhí)行清理工作,那么TokenCleanup
類可以來協(xié)助你痕鳍。這個(gè)類接受一個(gè)EntityFrameworkServiceOptions
和 Int32
間隔(單位為秒)來決定多久清理一次過期數(shù)據(jù)硫豆。它會(huì)異步連接上數(shù)據(jù)庫龙巨,配置方式如下:
var efConfig = new EntityFrameworkServiceOptions {
ConnectionString = connString,
//Schema = "foo"
};
var cleanup = new TokenCleanup(efConfig, 10);
cleanup.Start();