您如何使用 LibGit2Sharp 向 VSTS 进行身份验证?
How do you authenticate to VSTS using LibGit2Sharp?
我正在尝试使用 LibGit2Sharp 克隆 VSTS(Visual Studio 团队服务)存储库。我正在设置 CredentialsHandler
和 UsernamePasswordCredentials
代表我的 Microsoft 帐户的凭据,我得到的结果是:
LibGit2Sharp.LibGit2SharpException was unhandled
HResult=-2146233088
Message=Too many redirects or authentication replays
Source=LibGit2Sharp
如果我什至不能输入我的实际用户名和密码,我不确定什么方法可行。
我也试过使用 DefaultCredentials
提到的 here,但这似乎只适用于 TFS,而不是 VSTS(TFS 的 NTLM 凭据)。
首先,您需要为您的帐户启用备用身份验证。请按照以下步骤执行此操作:
- 登录 VSTS Web 门户。
- 单击您的帐户名称,然后单击右上角的 select "My profile"。
- 切换到 "Security" 面板。
- Select "Alternate authentication credentials" 并配置。
然后您可以使用备用凭据对 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);
}
}
}
我正在尝试使用 LibGit2Sharp 克隆 VSTS(Visual Studio 团队服务)存储库。我正在设置 CredentialsHandler
和 UsernamePasswordCredentials
代表我的 Microsoft 帐户的凭据,我得到的结果是:
LibGit2Sharp.LibGit2SharpException was unhandled
HResult=-2146233088
Message=Too many redirects or authentication replays
Source=LibGit2Sharp
如果我什至不能输入我的实际用户名和密码,我不确定什么方法可行。
我也试过使用 DefaultCredentials
提到的 here,但这似乎只适用于 TFS,而不是 VSTS(TFS 的 NTLM 凭据)。
首先,您需要为您的帐户启用备用身份验证。请按照以下步骤执行此操作:
- 登录 VSTS Web 门户。
- 单击您的帐户名称,然后单击右上角的 select "My profile"。
- 切换到 "Security" 面板。
- Select "Alternate authentication credentials" 并配置。
然后您可以使用备用凭据对 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);
}
}
}