https使用BasicHttpBinding并忽略证书错误

时间:2012-04-21 05:12:47

标签: c# security x509certificate2

我正在使用BasicHttpBinding来连接托管在安全(https)端口上的Web服务。为了使其正常运行,我已将Security.Mode更改为TransportWithMessageCredentialSecurity.Message更改为BasicHttpMessageCredentialType.Cerificate。我也在打电话

client.ClientCredentials.ClientCertificate.SetCertificate()

以localhost作为主题名称。

这里的问题是,对于单元测试,我有来自Web服务器的未签名证书,我应该忽略在代理创建期间抛出的任何证书错误;但我无法这样做,因为我一直收到错误告诉我“指定证书”。现在,我无能为力;我感谢任何帮助。

2 个答案:

答案 0 :(得分:9)

您可以使用以下代码跳过证书验证。这会创建一个RemoteCertificateValidationCallback,对于任何证书都会返回true。

System.Net.ServicePointManager.ServerCertificateValidationCallback = 
    (sender, certificate, chain, errors) => true;

答案 1 :(得分:6)

对于服务器ssl,SecurityMode应设置为Transport