问题
I'm trying to clone a VSTS (Visual Studio Team Services) repository using LibGit2Sharp. I'm setting up a CredentialsHandler
and UsernamePasswordCredentials
representing my Microsoft Account's credentials, and the result I get is this:
LibGit2Sharp.LibGit2SharpException was unhandled
HResult=-2146233088
Message=Too many redirects or authentication replays
Source=LibGit2Sharp
If I can't even pass in my actual username and password, I'm not sure what might work.
I also tried using DefaultCredentials
as mentioned here, but that appears to be only for TFS, not VSTS (NTLM credentials for TFS).
回答1:
First, you need to enable alternate authentication for your account. Follow the steps below to do this:
- Login VSTS Web Portal.
- Click your account name and select "My profile" from up right corner.
- Switch to "Security" panel.
- Select "Alternate authentication credentials" and configure it.
Then you can use the alternative credential to authenticate to VSTS. Following code shows how to authenticate to VSTS and perform a clone job.
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);
}
}
}
来源:https://stackoverflow.com/questions/36927437/how-do-you-authenticate-to-vsts-using-libgit2sharp