忽略无效的SSL证书

Joa*_*kim 11 .net c# svn ssl asp.net-mvc-3

我试图从我们的子版本打印出日志消息.但我正在努力绕过无效的SSL证书.这是错误:

' https:// xxxxx/svn/SiteFabrics/trunk/AppLaunch/Bloc/Frontend '的选项:服务器证书验证失败:为不同的主机名颁发证书,颁发者不受信任(https:// xxxx)

我忽略证书错误的尝试是添加以下行:

ServicePointManager.ServerCertificateValidationCallback += (sender, cert, chain, sslPolicyErrors) => true;
Run Code Online (Sandbox Code Playgroud)

然而,由于.net错误仍然相同,这没有任何区别.下面是代码,谁能看到我做错了什么?

        using (SvnClient client = new SvnClient())
        {
            Collection<SvnLogEventArgs> list;
            client.Authentication.DefaultCredentials = new NetworkCredential("user", "pass");

            ServicePointManager.ServerCertificateValidationCallback += (sender, cert, chain, sslPolicyErrors) => true;

            SvnLogArgs la = new SvnLogArgs(); //{ Start=128; End=132; };
            client.LoadConfiguration(Path.Combine(Path.GetTempPath(), "Svn"), true);
            client.GetLog(new Uri("https://[svnurl]"), la, out list);
            ViewBag.SVNLog = list;
        }
Run Code Online (Sandbox Code Playgroud)

Joa*_*kim 4

找到了这个问题的解决方案:

首先添加这个:

        static void SVN_SSL_Override(object sender, SharpSvn.Security.SvnSslServerTrustEventArgs e)
    {
        e.AcceptedFailures = e.Failures;
        e.Save = true;
    }
Run Code Online (Sandbox Code Playgroud)

然后替换我原来的魔法线:

            ServicePointManager.ServerCertificateValidationCallback += (sender, cert, chain, sslPolicyErrors) => true;
Run Code Online (Sandbox Code Playgroud)

有了这个:

client.Authentication.SslServerTrustHandlers += new EventHandler<SharpSvn.Security.SvnSslServerTrustEventArgs>(SVN_SSL_Override);
Run Code Online (Sandbox Code Playgroud)