如何根据.NET的本地truststore验证LDAP SSL证书

如何根据.NET的本地truststore验证LDAP SSL证书,ldap,ssl-certificate,Ldap,Ssl Certificate,我正在尝试使用SSL实现安全LDAP,并希望根据我为其导入证书的本地密钥库验证服务器证书 我意识到我可以做到这一点: ldapConnection.SessionOptions.VerifyServerCertificate = new VerifyServerCertificateCallback((con, cer) => true); 但这不提供身份验证,并且将接受任何证书。当我将SSL与WCF连接一起使用时,默认情况下,它将自动使用我的密钥库,而无需我提

我正在尝试使用SSL实现安全LDAP,并希望根据我为其导入证书的本地密钥库验证服务器证书

我意识到我可以做到这一点:

ldapConnection.SessionOptions.VerifyServerCertificate =
            new VerifyServerCertificateCallback((con, cer) => true); 
但这不提供身份验证,并且将接受任何证书。当我将SSL与WCF连接一起使用时,默认情况下,它将自动使用我的密钥库,而无需我提供任何委托,这非常有效

如何将LDAP连接的证书验证定向到我的信任存储?我是否可以实现该委托,然后将X509Certificate参数传递给将根据我的存储验证它的其他对象


我必须使用.NET 4.0

您提供的代码用于自定义证书验证实现。为什么不允许LDAP客户端自动为您执行此操作?简言之,只需删除此代码,LDAP客户端就会自动验证证书。这正是我想做的,也是产生此问题的原因。这正是我对WCF所做的。但显然,LDAP连接支持在默认情况下并不查看本地信任库。唯一的方法是提供回调,所有联机示例都使用returntrue作为解决方案。