我有一个 MVC .Net 4.6.2 Web 应用程序,它使用以下代码来获取 RSACryptoServiceProvider:
public static RSACryptoServiceProvider GetKey(byte[] key, string pass)
{
Org.BouncyCastle.Crypto.AsymmetricKeyParameter asp = Org.BouncyCastle.Security.PrivateKeyFactory.DecryptKey(pass.ToCharArray(), key);
var rsa = DotNetUtilities.ToRSA((RsaPrivateCrtKeyParameters)asp) as RSACryptoServiceProvider;
return rsa;
}
在我使用 IIS 的 Web 服务器上,它可以正常工作。
当我在 Azure 门户中发布时,DecryptKey
方法返回以下错误:
The system can not find the specified file.
有什么想法吗?
最佳答案
在此操作中:
var asp = Org.BouncyCastle.Security.PrivateKeyFactory.DecryptKey(pass.ToCharArray(), key);
BouncyCaSTLe 需要访问服务器的 KeyChange,解决方案是在 Azure 门户中添加配置设置。
可以在应用程序设置的高级编辑中添加以下内容:
{
"name": "WEBSITE_LOAD_CERTIFICATES",
"value": "1",
"slotSetting": false
}
或者您可以使用标准设置编辑器添加它,如下面的屏幕截图所示:
关于azure - Azure Web 应用程序中 BouncyCaSTLe 的 DecryptKey 方法失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53617317/