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)
找到了这个问题的解决方案:
首先添加这个:
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)