首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么RSACryptoServiceProvider.VerifyHash需要LDAP检查?

问为什么RSACryptoServiceProvider.VerifyHash需要LDAP检查?
EN

Stack Overflow用户
提问于 2008-10-06 13:57:57
回答 2查看 2.4K关注 0票数 6

最近我在RSACryptoServiceProvider.VerifyHash上遇到了一个奇怪的问题。

我有一个网络应用程序用它来解密。当用户通过我们的VPN运行web服务时,它变得非常缓慢。当他们没有连接或互联网连接时,他们就没事了。

在深入研究之后,我发现每次调用RSACryptoServiceProvider.VerifyHash时,它都会发出一个检查MyMachineName\ASPNET的请求。

这种情况不会发生在我们的WebDev (卡西尼)服务器上,因为它们是以当前用户的身份运行的,而且它只是在VPN上运行得非常慢,但它根本不应该发生。

这似乎是错误的,有几个原因:

  • 为什么要为本地机器用户检查域控制器?
  • 为什么要关心?无论.

,加密/解密都是有效的。

有人知道为什么会发生这种情况吗?或者如何最好地解决这个问题?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2008-10-06 14:04:37

从这个KB中看,它看起来像是需要排序的代码中的“皱纹”:

http://support.microsoft.com/kb/948080

票数 7
EN

Stack Overflow用户

发布于 2008-10-06 14:25:32

谢谢(+1 & ans)

测试和工作。

在KB文章中:

SignData或VerifyData方法总是执行OID查找查询,即使应用程序在本地用户帐户中运行,也会发送到域控制器。在签署或验证数据时,这可能会导致缓慢。由于域无法识别客户端计算机的本地用户帐户,因此DC上会发生登录失败审核事件。因此,OID查找失败。

这正是我们所看到的。

我们更改了这一行:

代码语言:javascript
复制
rsa.VerifyHash( hashedData, CryptoConfig.MapNameToOID( "SHA1" ), signature );

对此:

代码语言:javascript
复制
rsa.VerifyHash( hashedData, null, signature );

这就解决了问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/174387

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档