2017-05-08 7 views
1

IdSrv4のClientStoreにキャッシュを実装する方法は?私はすでにAddClientStoreCache でドキュメントをチェックしていますが、それは...私のConfigureServices次のように私はIdSrvを設定してい方法で 私を助けていません:IdentityServer4でキャッシュを実装する方法は?

services.AddIdentityServer(options => 
       { 
        options.IssuerUri = "http://idp.address.jus.br/"; 
        options.Caching.ClientStoreExpiration = TimeSpan.FromHours(1); 
       }) 
       .AddSigningCredential(cert) 
       .AddClientStoreCache<ClientStore>(); 

を...そして、私のClientStoreで実装私はキャッシングについて何も持っていない...私はwheterをチェックする必要があります情報はキャッシュにあるFindClientByIdAsync何らかの形でですか?または、私のためにそのフードの下で行われた?

あなたがCachingClientStore.csのサンプル実装を探しているなら、あなたがチェックすることができ、私は唯一のIdentityServer4.Postgresqlでサンプルを見つけましたが、私は私のカスタムストアクラスに成功事例のでそれを複製することはできません...

+0

キャッシングとはどういう意味ですか? 'clients'、' access_tokens'をデータベースに保存しますか? – moritzg

+0

IdrSrvにはClientStoreとResourceStoreのキャッシュオプションがありますが、そのサンプルがあります。 –

答えて

3

デフォルトの実装(IDサーバがこれを行う方法)hereを実行します。

public async Task<Client> FindClientByIdAsync(string clientId) 
{ 
    var client = await _cache.GetAsync(clientId, 
    _options.Caching.ClientStoreExpiration, 
    () => _inner.FindClientByIdAsync(clientId), 
    _logger); 

    return client; 
} 

彼らはあなたのキャッシュアルゴリズムを実装する方法の選択肢を与えています。 RedisなどのIn-MemoryデータベースにClientStoreをキャッシュすることができます。 IdentityServer4の優れた点は、必要なときにインターフェースを実装できることです。

関連する問題