首页 > 解决方案 > CngKey System.Security.Cryptography.CryptographicException 系统找不到 Azure 上指定的文件

问题描述

我尝试从此代码生成密钥

CngKey key = CngKey.Import(Convert.FromBase64String(privateKey), CngKeyBlobFormat.Pkcs8PrivateBlob);

它在本地运行良好,但是当我在我的 Azure 应用服务中部署时。它给了我这个错误:

System.Security.Cryptography.CryptographicException:系统找不到指定的文件。在 System.Security.Cryptography.NCryptNative.ImportKey(SafeNCryptProviderHandle 提供程序,Byte[] keyBlob,字符串格式)在 System.Security.Cryptography.CngKey.Import(Byte[] keyBlob,字符串曲线名称,CngKeyBlobFormat 格式,CngProvider 提供程序)

我在配置中添加了 WEBSITE_LOAD_USER_PROFILE,值为“1”,但没有任何区别。

谢谢

标签: c#azuresecuritycryptographyprivate-key

解决方案


如果WEBSITE_LOAD_USER_PROFILE = 1不适合你。这是同一问题的解决方法:

  • 在 portal.azure.com 中打开您的 Azure 应用服务(Azure 网站)刀片
  • 转到应用程序设置页面
  • 滚动到应用设置
  • 添加一个新的条目键:WEBSITE_LOAD_CERTIFICATES,并为其提供一个虚拟(假的、虚构的、随机生成的)值。

查看以下链接以获取类似问题以供参考:


推荐阅读