使用SharpSVN保存本地SVN身份验证凭据

时间:2013-06-12 17:08:59

标签: c# svn authentication sharpsvn

我正在使用SharpSVN。

我想将SVN凭证存储在电脑中。

我尝试设置凭据更新默认凭据

using (SvnClient client = new SvnClient())
{
    client.Authentication.DefaultCredentials = new System.Net.NetworkCredential("user", "password");
    ...
}

但它不保存数据。

我发现SharpSvn提供了一个默认的GUI来输入凭据。该GUI具有存储数据的标志。这里是我找到信息的链接:

这里使用它的代码:

using (SvnClient client = new SvnClient())
{
    // Bind the SharpSvn UI to our client for SSL certificate and credentials
    SharpSvn.UI.SharpSvnUI.Bind(client, IWin32Window);
    ....
}

但是它是针对Windows.Forms和我使用WPF。 此外,我无法使用此默认GUI。

现在有人怎么做?

谢谢!

1 个答案:

答案 0 :(得分:5)

我找到了答案!

对于正在使用的计算机中的保存凭据

using (SvnClient client = new SvnClient())
{
    //Save localy new Authentication credentials
    client.Authentication.UserNamePasswordHandlers
    += delegate(object obj, SharpSvn.Security.SvnUserNamePasswordEventArgs args)
    {
        args.UserName = "username";
        args.Password = "password";
        args.Save= true;
    };
}

我经常在缓存中找到添加凭据的解决方案,但这不会在计算机中存储凭据。此凭据仅对SvnClient生命有效。 我报告完整性的答案

using (SvnClient client = new SvnClient())
{
    // Clear a previous authentication
    client.Authentication.Clear(); 
    client.Authentication.DefaultCredentials = new System.Net.NetworkCredential("user", "password");
}

我在这里找到了部分答案

在这里:

http://sharpsvn.open.collab.net/ds/viewMessage.do?dsMessageId=140680&dsForumId=728

查看方法DialogUserNamePasswordHandler

http://sharpsvn.open.collab.net/svn/sharpsvn/trunk/src/SharpSvn.UI/SvnClientUIHandler.cs

供访问使用:

  • 用户名:来宾
  • 不需要密码