在ASP.NET 中调用RSACryptoServiceProvider失败,提示未找到文件

在本地开发环境调试下,调试这个RSA加密是没问题的,但是部署到IIS就会报错。

原来是,在本地vs调试与IIS上运行是存在权限差异的。本地调试权限最大,IIS 次之。

所以在我们声明CspParameters参数时,我们要启动标识使用计算机存储权限UseMachineKeyStore。

默认是不指定任何配置NoFlags。

所以如下:

CspParameters RSAParams = new CspParameters();

RSAParams.Flags = CspProviderFlags.UseMachineKeyStore;

RSACryptoServiceProvider sp = new RSACryptoServiceProvider(1024, RSAParams); //1024 指定要使用密钥的大小