ASP.NET Core数据保护-受证书保护时无法共享密钥

时间:2019-05-29 15:13:36

标签: asp.net-core data-protection

我有两个应该使用相同数据保护的asp.net核心api。 (通常是为了获得防伪令牌,我们希望应用程序A能够发布到应用程序B)。 我知道我需要设置一个通用的应用程序名称(如in this SO answer所述,这可行。

   var di = new DirectoryInfo(cryptoKeysLocation);
   services
     .AddDataProtection()
     .SetApplicationName("mywebapps")
     .PersistKeysToFileSystem(di)

但是,一旦我添加了用于加密密钥的证书,就会得到CryptographicException。 当我查看存储密钥的位置时,我发现现在已经创建了重复的密钥,而不再只是一个密钥。
看起来像这样的额外ProtectKeysWithCertificate使得不可能在应用程序之间共享密钥?
还是我在这里错过了另一个关键步骤?

   var di = new DirectoryInfo(cryptoKeysLocation);
   services
     .AddDataProtection()
     .SetApplicationName("mywebapps")
     .PersistKeysToFileSystem(di)
     .ProtectKeysWithCertificate(new X509Certificate2(certpfx, certpwd));

0 个答案:

没有答案