SVN Repository Authentication using SharpSVN

前端 未结 4 2195
不知归路
不知归路 2020-12-09 08:46

Can any one tell me how to authenticate users(SVN users) for a repository using SharpSVN Library. That repository should only be committed by those users. Thanks

相关标签:
4条回答
  • 2020-12-09 08:50

    Use the Authenticate properties of SVNClient:

    client.Authentication.Clear(); // Clear a previous authentication
    client.Authentication.DefaultCredentials = new System.Net.NetworkCredential("user", "password");
    
    0 讨论(0)
  • 2020-12-09 09:04

    You can also override SSL certificate errors by adding an event handler to SslServerTrustHandlers like this:

    SVN_Conn.Authentication.SslServerTrustHandlers += new EventHandler<SharpSvn.Security.SvnSslServerTrustEventArgs>(SVN_SSL_Override);
    
    static void SVN_SSL_Override(object sender, SharpSvn.Security.SvnSslServerTrustEventArgs e)
    {
        e.AcceptedFailures = e.Failures;
        e.Save = true;
    }
    
    0 讨论(0)
  • 2020-12-09 09:13
    client.Authentication.ForceCredentials("user", "password");
    

    For those of you who don't want to blow away your default credentials (if you're running TortoiseSVN on the same machine).

    0 讨论(0)
  • 2020-12-09 09:13

    In my case, the SVN server was running VisualSVN Server 3.5.3 with Integrated Windows Authentication enabled. Using SharpSvn 1.9004.3879.127, the SVN client tried to use Windows authentication even when I configured it with a username and password:

    client = new SvnClient();
    client.Authentication.Clear(); //Prevents saving/loading config to/from disk
    client.Authentication.DefaultCredentials = new NetworkCredential("username", "password");
    

    This resulted in the following error when the application code was run by a Windows user that didn't have access to the repository:

    SvnRepositoryIOException: Unable to connect to a repository at URL 'https://mysvnserver/svn/reponame'

    I fixed this by only allowing basic and digest authentication:

    client = new SvnClient();
    client.Configuration.SetOption("servers", "global", "http-auth-types", "basic;digest");
    client.Authentication.Clear(); // Prevents saving/loading config to/from disk
    client.Authentication.DefaultCredentials = new NetworkCredential("username", "password");
    
    0 讨论(0)
提交回复
热议问题