任何人都可以告诉我如何使用SharpSVN Library对存储库的用户(SVN用户)进行身份验证。 该存储库只应由这些用户提交。 谢谢
答案 0 :(得分:46)
使用SVNClient
的验证属性:
client.Authentication.Clear(); // Clear a previous authentication
client.Authentication.DefaultCredentials = new System.Net.NetworkCredential("user", "password");
答案 1 :(得分:14)
client.Authentication.ForceCredentials("user", "password");
对于那些不想吹走你的默认凭据的人(如果你在同一台机器上运行TortoiseSVN)。
答案 2 :(得分:9)
您还可以通过向SslServerTrustHandlers
添加事件处理程序来覆盖SSL证书错误,如下所示:
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;
}
答案 3 :(得分:2)
在我的情况下,SVN服务器运行VisualSVN Server 3.5.3并启用了集成Windows身份验证。使用SharpSvn 1.9004.3879.127,SVN客户端尝试使用Windows身份验证,即使我使用用户名和密码进行配置:
client = new SvnClient();
client.Authentication.Clear(); //Prevents saving/loading config to/from disk
client.Authentication.DefaultCredentials = new NetworkCredential("username", "password");
当应用程序代码由无法访问存储库的Windows用户运行时,会导致以下错误:
SvnRepositoryIOException:无法连接到URL&#39; https://mysvnserver/svn/reponame&#39;
的存储库
我通过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");