tag - svn trunk
Autenticación de repositorio SVN con SharpSVN (4)
En mi caso, el servidor SVN ejecutaba VisualSVN Server 3.5.3 con la Autenticación de Windows integrada habilitada. Usando SharpSvn 1.9004.3879.127, el cliente SVN intentó usar la autenticación de Windows incluso cuando lo configuré con un nombre de usuario y contraseña:
client = new SvnClient();
client.Authentication.Clear(); //Prevents saving/loading config to/from disk
client.Authentication.DefaultCredentials = new NetworkCredential("username", "password");
Esto produjo el siguiente error cuando el código de la aplicación fue ejecutado por un usuario de Windows que no tenía acceso al repositorio:
SvnRepositoryIOException: no se puede conectar a un repositorio en la URL '' https://mysvnserver/svn/reponame ''
Lo arreglé solo al permitir basic
autenticación basic
y digest
:
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");
¿Alguien puede decirme cómo autenticar usuarios (usuarios SVN) para un repositorio usando la Biblioteca SharpSVN? Ese repositorio solo debe ser comprometido por esos usuarios. Gracias
También puede anular los errores de certificado SSL al agregar un controlador de eventos a SslServerTrustHandlers
siguiente manera:
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;
}
Use las propiedades de autenticación de SVNClient
:
client.Authentication.Clear(); // Clear a previous authentication
client.Authentication.DefaultCredentials = new System.Net.NetworkCredential("user", "password");
client.Authentication.ForceCredentials("user", "password");
Para aquellos de ustedes que no quieren deshacerse de sus credenciales predeterminadas (si está ejecutando TortoiseSVN en la misma máquina).