最近我在RSACryptoServiceProvider.VerifyHash上遇到了一个奇怪的问题。
我有一个网络应用程序用它来解密。当用户通过我们的VPN运行web服务时,它变得非常缓慢。当他们没有连接或互联网连接时,他们就没事了。
在深入研究之后,我发现每次调用RSACryptoServiceProvider.VerifyHash时,它都会发出一个检查MyMachineName\ASPNET的请求。
这种情况不会发生在我们的WebDev (卡西尼)服务器上,因为它们是以当前用户的身份运行的,而且它只是在VPN上运行得非常慢,但它根本不应该发生。
这似乎是错误的,有几个原因:
,加密/解密都是有效的。
有人知道为什么会发生这种情况吗?或者如何最好地解决这个问题?
发布于 2008-10-06 14:04:37
从这个KB中看,它看起来像是需要排序的代码中的“皱纹”:
发布于 2008-10-06 14:25:32
谢谢(+1 & ans)
测试和工作。
在KB文章中:
SignData或VerifyData方法总是执行OID查找查询,即使应用程序在本地用户帐户中运行,也会发送到域控制器。在签署或验证数据时,这可能会导致缓慢。由于域无法识别客户端计算机的本地用户帐户,因此DC上会发生登录失败审核事件。因此,OID查找失败。
这正是我们所看到的。
我们更改了这一行:
rsa.VerifyHash( hashedData, CryptoConfig.MapNameToOID( "SHA1" ), signature );对此:
rsa.VerifyHash( hashedData, null, signature );这就解决了问题。
https://stackoverflow.com/questions/174387
复制相似问题