我写一个测试,测试服务,我部署,绕过SSL证书检查我用下面的代码片段实现的SSL覆盖:
public static void SSLValidationOverride()
{
ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(OnValidationCallback);
}
private static bool OnValidationCallback(object sender, X509Certificate cert, X509Chain chain, SslPolicyErrors errors)
{
if (cert.subject == MyCertSubject)
return true;
else
return false;
}
Run Code Online (Sandbox Code Playgroud)
现在,我在代码中使用SSL来调用另一个Web服务,并希望在调用之前切换到默认的SSL检查.什么是最好的方法.MS的帮助表示ServicePointManager.SecurityProtocol的默认值为null(http://msdn.microsoft.com/en-us/library/system.net.servicepointmanager.securityprotocol.aspx).将其设置为null会切换到默认的ssl验证,还有其他方法可以执行此操作.