你如何使用LibGit2Sharp对VSTS进行身份验证?

时间:2016-04-29 00:06:49

标签: git tfs azure-devops libgit2sharp

我尝试使用LibGit2Sharp克隆VSTS(Visual Studio Team Services)存储库。我设置了UsernamePasswordCredentialsLibGit2Sharp.LibGit2SharpException was unhandled HResult=-2146233088 Message=Too many redirects or authentication replays Source=LibGit2Sharp 代表我的Microsoft帐户凭据,我得到的结果是:

DefaultCredentials

如果我甚至无法传递我的实际用户名和密码,我不确定可能会有什么用。

我也尝试使用{{1}}提到here,但这似乎仅适用于TFS,而不是VSTS(TFS的NTLM凭据)。

1 个答案:

答案 0 :(得分:5)

首先,您需要为帐户启用备用身份验证。请按照以下步骤执行此操作:

  1. 登录VSTS Web门户。
  2. 点击您的帐户名称,然后选择"我的个人资料"从右上角。
  3. 切换到"安全"面板。
  4. 选择"备用身份验证凭据"并配置它。
  5. 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);
            }
        }
    }