X509Certificate2.Verify()方法始终为有效证书返回false

Lea*_*ner 5 c# x509certificate2

我正在使用智能卡进行身份验证.

SecurityTokenService(身份验证服务)仅托管在我的计算机上.智能卡具有有效证书,其根证书也安装在我的计算机上的本地计算机存储中.

当我使用X509Certificate2.Verify方法验证我的服务中的证书时,它总是返回false.

有人可以帮我理解为什么X509Certificate2.Verify()方法总是返回false吗?

注意:我使用X509Chain并检查了所有标志(X509VerificationFlags.AllFlags).当我建章宁,它会返回trueChainStatus作为RevocationStatusUnknown.


编辑1:

我观察到,如果我在Windows窗体应用程序中编写此代码,该X509Certificate2.Verify() 方法将返回true.它false仅在服务端代码中返回.为什么这样?奇怪但真实!

Lea*_*ner 0

我认为问题是由于我的组织中的代理服务器和一些安全设置造成的。我无法给出为什么它可以从 WinForm 客户端运行以及为什么不能从 IIS 下托管的代码运行的有效原因。

但我想让读者知道的事实是,Verify()当我在 IIS 中托管服务并在我常用域之外的计算机上运行时,该方法也适用于服务器端代码!因此,您可以检查您的域/组织的防火墙设置是否妨碍您。