使用SharpSVN进行SVN存储库身份验证 - 凭据无法正常工作

时间:2012-12-14 23:24:17

标签: c# sharpsvn

我在C#中有以下代码:

1.  public static void Main(string[] args) {
2.  Uri repository = new Uri("https://svnserver:port/svn/Src/trunk");
3.  using (SvnClient client = new SvnClient()) {                
4.    client.Authentication.Clear();
5.    client.Authentication.DefaultCredentials = new System.Net.NetworkCredential("user", "pass");
6.
7.    System.Collections.ObjectModel.Collection<SvnLogEventArgs> logEntries;
8.    SvnLogArgs logArgs = new SvnLogArgs();
9.    logArgs.Limit = 1;
10.   client.GetLog(repository, logArgs, out logEntries);
11.   }
12. }

如果我删除第4行和第5行,此代码可以正常运行。我假设它以某种方式在TortoiseSVN本地使用我保存的凭据。但是,我想在服务器环境中运行它,我需要专门传入用户名/密码。但是,一旦我尝试输入登录凭据,我就会在第10行收到以下错误:

SharpSvn.SvnRepositoryIOException was unhandled
Message: Unable to connect to a repository at URL

我在这里做错了什么?我已经确认我尝试使用的用户名/密码可以正常使用。

1 个答案:

答案 0 :(得分:15)

我找到了答案......在第5行之后添加:

client.Authentication.SslServerTrustHandlers += delegate(object sender, SvnSslServerTrustEventArgs e) {
                    e.AcceptedFailures = e.Failures;
                    e.Save = true; // Save acceptance to authentication store
                };