2016-04-29 2 views
0

Я пытаюсь клонировать репозиторий VSTS (Visual Studio Team Services), используя LibGit2Sharp. Я создание CredentialsHandler и UsernamePasswordCredentials представляющий учетные данные моего Microsoft учетной записи, а результат я получаю это:Как вы выполняете аутентификацию в VSTS с помощью LibGit2Sharp?

LibGit2Sharp.LibGit2SharpException was unhandled 
    HResult=-2146233088 
    Message=Too many redirects or authentication replays 
    Source=LibGit2Sharp 

Если я даже не могу передать в моей фактической имя пользователя и пароль, я не уверен, что может работать.

Я также пробовал использовать DefaultCredentials, как упоминалось, here, но это похоже только для TFS, а не VSTS (учетные данные NTLM для TFS).

ответ

4

Во-первых, вам необходимо включить альтернативную аутентификацию для своей учетной записи. Выполните следующие шаги для этого:

  1. Войти в систему VSTS Web Portal.
  2. Нажмите на название своей учетной записи и выберите «Мой профиль» справа вверху.
  3. Переключиться на панель «Безопасность».
  4. Выберите «Дополнительные учетные данные для аутентификации» и настройте его.

enter image description here

Затем вы можете использовать альтернативные учетные данные для проверки подлинности VSTS. В следующем коде показано, как выполнить аутентификацию в VSTS и выполнить клон.

using LibGit2Sharp; 

namespace ConsoleApplication1 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      string surl = "https://youraccount.visualstudio.com/DefaultCollection/_git/Remoterepo"; 
      string lpath = "C:\\LocalPath"; 
      CloneOptions co = new CloneOptions(); 
      string un = "alternativeusername"; 
      string pwd = "alternativepassword"; 
      Credentials ca = new UsernamePasswordCredentials() {Username = un, Password = pwd }; 
      co.CredentialsProvider = (_url, _user, _cred) => ca ; 
      Repository.Clone(surl,lpath,co); 
     } 
    } 
} 
+0

Фантастический. Я действительно ушел в эту область и сделал все правильно, за исключением того, что думал, что все еще могу использовать свой основной адрес электронной почты и пароль, только сейчас установлен флажок. Похоже, вы действительно должны ввести вторичное имя пользователя, чтобы выполнить эту работу. Вы не знаете, сможет ли Git Credential Manager для Windows (https://github.com/Microsoft/Git-Credential-Manager-for-Windows) использовать обычные учетные данные? – Todd

 Смежные вопросы

  • Нет связанных вопросов^_^