拒绝访问。 System.Security.Cryptography.CryptographicException: 拒绝访问。

sodagreen_nls 2010-03-24 09:59:31
现在遇到的问题是:

一个OA系统【asp.net+c#+sql编写】,在本地测试完全通过, 然后上传到服务器上后,当添加职员时,点击提交,出现错误

其他的都可以用。错误如下, 求疑问。求解答。求高手现身。





拒绝访问。

说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.Security.Cryptography.CryptographicException: 拒绝访问。


源错误:

执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。

堆栈跟踪:


[CryptographicException: 拒绝访问。
]
System.Security.Cryptography.Utils.CreateProvHandle(CspParameters parameters, Boolean randomKeyContainer) +7712542
System.Security.Cryptography.Utils.GetKeyPairHelper(CspAlgorithmType keyType, CspParameters parameters, Boolean randomKeyContainer, Int32 dwKeySize, SafeProvHandle& safeProvHandle, SafeKeyHandle& safeKeyHandle) +67
System.Security.Cryptography.RSACryptoServiceProvider.GetKeyPair() +83
System.Security.Cryptography.RSACryptoServiceProvider.ExportParameters(Boolean includePrivateParameters) +38
System.Security.Cryptography.RSA.ToXmlString(Boolean includePrivateParameters) +42
Mayu.xs.WebUI.inner_OrgPerson_EmpAdd.btnAdd_Click(Object sender, EventArgs e) +3902
System.Web.UI.WebControls.Button.OnClick(EventArgs e) +111
System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +110
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +36
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1565




--------------------------------------------------------------------------------
版本信息: Microsoft .NET Framework 版本:2.0.50727.3603; ASP.NET 版本:2.0.50727.3082
...全文
1146 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
lzsh0622 2010-03-24
  • 打赏
  • 举报
回复

试试:

当 RSACryptoProvider 创建了密钥文件但由于权限不足而无法删除该密钥文件时,会导致此错误。
此问题只会发生在应用层。

若要更正此错误,请确认代理服务帐户对“Documents and Settings”文件夹中 RSA 计算机密钥文件夹(例如,C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA)的“完全控制”权限设置为“允许”。

http://msdn.microsoft.com/zh-cn/library/ms400681.aspx
打开下面链接,直接免费下载资源: https://renmaiwang.cn/s/eqeng ### c#使用DES解密提示:指定键的大小对于此算法无效在处理加密与解密操作时,遇到“指定键的大小对于此算法无效”这类错误是非常常见的问题之一。尤其是在使用C#语言进行开发时,如果对底层的加密算法理解不深,则很容易遇到此类错误。本文将详细探讨这一问题,并提供解决方案。#### 错误信息解析错误信息为:“System.Security.Cryptography.CryptographicException: 指定键的大小对于此算法无效”,这通常发生在尝试使用不支持的密钥长度执行DES(Data Encryption Standard)加密或解密操作时。DES是一种对称加密算法,其标准密钥长度为56位。而在.NET Framework中,默认情况下支持的DES密钥长度也确实是56位。#### 导致问题的原因1. **密钥长度设置错误**:在初始化`DESCryptoServiceProvider`类时,如果显式指定了一个不被支持的密钥长度,则会引发异常。2. **加密与解密密钥不匹配**:在进行加密和解密操作时,如果使用的密钥长度不一致,也会导致此错误。3. **环境配置问题**:某些.NET版本可能对DES的支持有所不同,或者某些特定的安全策略可能会限制密钥的大小。#### 解决方案##### 1. 确保密钥长度正确- 在创建`DESCryptoServiceProvider`对象时,确保没有显式指定密钥长度。如果需要指定,请确保使用的是56位。 ```csharp DESCryptoServiceProvider des = new DESCryptoServiceProvider(); ```- 如果确实需要使用不同的密钥长度(例如为了兼容性),可以考虑使用其他支持更长密钥的加

111,131

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧