Может ли кто-нибудь сказать мне, как аутентифицировать пользователей (пользователей SVN) для репозитория, используя библиотеку SharpSVN. Этот репозиторий должен выполняться только этими пользователями. Спасибо
Аутентификация репозитория SVN с использованием SharpSVN
Ответ 1
Используйте свойства Authenticate для SVNClient
:
client.Authentication.Clear(); // Clear a previous authentication
client.Authentication.DefaultCredentials = new System.Net.NetworkCredential("user", "password");
Ответ 2
client.Authentication.ForceCredentials("user", "password");
Для тех из вас, кто не хочет сбрасывать ваши учетные данные по умолчанию (если вы используете TortoiseSVN на одном компьютере).
Ответ 3
Вы также можете переопределить ошибки сертификата 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;
}
Ответ 4
В моем случае сервер 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");