Аутентификация репозитория SVN с использованием SharpSVN - PullRequest
26 голосов
/ 23 июня 2010

Может ли кто-нибудь сказать мне, как аутентифицировать пользователей (пользователей SVN) для хранилища с помощью библиотеки SharpSVN.Этот репозиторий должен быть зафиксирован только этими пользователями.Спасибо

Ответы [ 4 ]

46 голосов
/ 02 марта 2011

Используйте свойства аутентификации SVNClient:

client.Authentication.Clear(); // Clear a previous authentication
client.Authentication.DefaultCredentials = new System.Net.NetworkCredential("user", "password");
14 голосов
/ 28 марта 2013
client.Authentication.ForceCredentials("user", "password");

Для тех из вас, кто не хочет выбрасывать учетные данные по умолчанию (если вы используете TortoiseSVN на той же машине).

9 голосов
/ 14 мая 2011

Вы также можете переопределить ошибки SSL-сертификата, добавив обработчик событий в SslServerTrustHandlers, например:

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;
}
2 голосов
/ 06 октября 2016

В моем случае на 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-адресу 'https://mysvnserver/svn/reponame'

Я исправил это только с помощью , разрешив basic и 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");
...