C# 在Azure网站上使用RSACryptServiceProvider会导致文件未找到错误
我正在将一个现有(和正在工作的)ASP.NET网站移动到Azure网站。该站点的一项功能是对XML文档进行签名。获取密钥的代码是:C# 在Azure网站上使用RSACryptServiceProvider会导致文件未找到错误,c#,asp.net,azure,cryptography,C#,Asp.net,Azure,Cryptography,我正在将一个现有(和正在工作的)ASP.NET网站移动到Azure网站。该站点的一项功能是对XML文档进行签名。获取密钥的代码是: // retrieve a key from the key safe - this will create it if it does not exist yet System.Security.Cryptography.CspParameters csp = new CspParameters(); csp.KeyContainerName = "MyKeyNa
// retrieve a key from the key safe - this will create it if it does not exist yet
System.Security.Cryptography.CspParameters csp = new CspParameters();
csp.KeyContainerName = "MyKeyName";
System.Security.Cryptography.RSACryptoServiceProvider key = new RSACryptoServiceProvider(csp);
最后一行抛出加密异常,消息为“系统找不到指定的文件”
我没有将密钥或容器放入Azure-我的理解是服务提供商将创建一个密钥或容器。
我已经复习过了,但没有得到任何线索
很明显,我遗漏了一些基本的东西。谢谢西蒙——这为我指明了正确的方向 事实证明,您需要指定在计算机存储中创建密钥。有效的代码是:
System.Security.Cryptography.CspParameters csp = new CspParameters();
csp.KeyContainerName = "MyKeyName";
csp.Flags = CspProviderFlags.UseMachineKeyStore;
请注意,添加了一行指定“UseMachineKeyStore”建议您查看此帖子的答案,这将为您提供所需信息:我们在这方面遇到了类似的问题,并最终指定了一个临时密钥-无论出于何种原因,UseMachineKeyStore始终引发未找到文件路径的异常。如果不确切了解Azure网站在做什么,显然机器密钥存储路径在这种情况下不起作用,并且临时密钥不会持久化,并且工作正常。但这取决于应用程序。