我正在把一个现有的(和工作的)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 = "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”的行