Аутентификация репозитория SVN с использованием SharpSVN

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


person Amila Weerasekara    schedule 23.06.2010    source источник


Ответы (4)


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

client.Authentication.Clear(); // Clear a previous authentication
client.Authentication.DefaultCredentials = new System.Net.NetworkCredential("user", "password");
person Jérémie Bertrand    schedule 02.03.2011
comment
Это не работает для меня, есть ли какие-то предпосылки для этого? - person Adam Levitt; 15.12.2012
comment
Только библиотека SharpSVN. Вы уверены в своем имени пользователя и пароле? - person Jérémie Bertrand; 17.12.2012

client.Authentication.ForceCredentials("user", "password");

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

person Graeme Wicksted    schedule 28.03.2013
comment
С этим я могу аутентифицироваться, но это меняет мои учетные данные по умолчанию в TortoiseSVN. - person bubi; 31.07.2018

Вы также можете переопределить ошибки 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;
}
person jocull    schedule 14.05.2011
comment
Просто так, чтобы это было упомянуто: не вызывайте «client.authentication.clear()» после подписки на событие, иначе оно не сработает. - person SanBen; 09.05.2012
comment
@SanBen Спасибо, спасибо, спасибо! Сегодня я часами зависал на этом месте. - person Jay; 18.04.2019

В моем случае на сервере 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");
person Sam    schedule 06.10.2016