我尝试使用LibGit2Sharp克隆VSTS(Visual Studio Team Services)存储库。我设置了UsernamePasswordCredentials
和LibGit2Sharp.LibGit2SharpException was unhandled
HResult=-2146233088
Message=Too many redirects or authentication replays
Source=LibGit2Sharp
代表我的Microsoft帐户凭据,我得到的结果是:
DefaultCredentials
如果我甚至无法传递我的实际用户名和密码,我不确定可能会有什么用。
我也尝试使用{{1}}提到here,但这似乎仅适用于TFS,而不是VSTS(TFS的NTLM凭据)。
答案 0 :(得分:5)
首先,您需要为帐户启用备用身份验证。请按照以下步骤执行此操作:
然后,您可以使用备用凭据对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);
}
}
}