2017-05-10 4 views
1

私は、同じデータベースエントリを共有する必要があるASP.NETコアアプリケーションと.NETコアコマンドラインアプリケーションを持っています。私は列の1つを暗号化したいが、依然として2つのアプリケーションにエントリを読み込ませることができる。私は暗号化のためのDataProtection apisを見てきましたが、2つのアプリの間で解読する方法を理解することができます。助言がありますか?私は同じ目的でDataProtectorの設定を試してみましたが、両方のアプリケーションで2種類の.NETコアアプリケーション間で暗号化されたデータをどのように共有しますか?

:私は解読しようとすると

_protector = provider.CreateProtector("TestEncryption"); 

はしかし、私は次の例外を除いて羽目になる:
CryptographicException:ペイロードは無効です。

答えて

2

アプリケーション間でデータ保護キーを共有します。ローカルファイルシステム、Azure StorageまたはRedisキャッシュに格納することも、別のサードパーティの分散ストレージを使用することもできます。例:

public void ConfigureServices(IServiceCollection services) 
{ 
    // Connect to Redis database. 
    var redis = ConnectionMultiplexer.Connect("<URI>"); 
    services.AddDataProtection() 
     .PersistKeysToRedis(redis, "DataProtection-Keys"); 

    services.AddMvc(); 
} 

ドキュメント:Key storage providers

関連する問題