Asp.net azure DevOps使用HttpClient进行基本身份验证(失败)
我正在尝试使用HttpClient对我的Azure开发人员组织进行身份验证。 但它总是失败 实现身份验证成功的唯一方法是使用如下客户端库:Asp.net azure DevOps使用HttpClient进行基本身份验证(失败),asp.net,asp.net-web-api,azure-devops,dotnet-httpclient,azure-devops-rest-api,Asp.net,Asp.net Web Api,Azure Devops,Dotnet Httpclient,Azure Devops Rest Api,我正在尝试使用HttpClient对我的Azure开发人员组织进行身份验证。 但它总是失败 实现身份验证成功的唯一方法是使用如下客户端库: VssConnection connection = new VssConnection(new Uri(azureDevOpsOrganizationUrl), new VssClientCredentials()); string SecurelyStoredUserName = "EmailAddressAsUserName";
VssConnection connection = new VssConnection(new Uri(azureDevOpsOrganizationUrl), new VssClientCredentials());
string SecurelyStoredUserName = "EmailAddressAsUserName";
SecureString SecurelyStoredPassword = new SecureString();
string PWD = "MyVerySecuredPassword";
PWD.ToList().ForEach(SecurelyStoredPassword.AppendChar);
NetworkCredential myCred = new NetworkCredential(
SecurelyStoredUserName, SecurelyStoredPassword, azureDevOpsOrganizationUrl);
string svcCredentials = Convert.ToBase64String(ASCIIEncoding.ASCII.GetBytes(SecurelyStoredUserName + ":" + SecurelyStoredPassword));
HttpClientHandler handler;
handler = new HttpClientHandler() { Credentials = myCred };
HttpClient client;
client = new HttpClient(handler);
client.BaseAddress = new Uri(azureDevOpsOrganizationUrl);
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Add("Accept", "application/json");
client.DefaultRequestHeaders.Add("Authorization", "Basic " + svcCredentials);
希望有人能告诉我什么是正确的方式来验证使用用户名和密码只
更新:
我也试过这样:
VssConnection connection = new VssConnection(new Uri(azureDevOpsOrganizationUrl), new VssClientCredentials());
string SecurelyStoredUserName = "EmailAddressAsUserName";
SecureString SecurelyStoredPassword = new SecureString();
string PWD = "MyVerySecuredPassword";
PWD.ToList().ForEach(SecurelyStoredPassword.AppendChar);
NetworkCredential myCred = new NetworkCredential(
SecurelyStoredUserName, SecurelyStoredPassword, azureDevOpsOrganizationUrl);
string svcCredentials = Convert.ToBase64String(ASCIIEncoding.ASCII.GetBytes(SecurelyStoredUserName + ":" + SecurelyStoredPassword));
HttpClientHandler handler;
handler = new HttpClientHandler() { Credentials = myCred };
HttpClient client;
client = new HttpClient(handler);
client.BaseAddress = new Uri(azureDevOpsOrganizationUrl);
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Add("Accept", "application/json");
client.DefaultRequestHeaders.Add("Authorization", "Basic " + svcCredentials);
这就是我所做的,但当我尝试执行get/post时,出现错误401 Unauthorized您无法向Azure Devops发送网络凭据。它不接受这种身份验证。您可以使用个人访问令牌,或使用Active Directory API获取访问权限 A
如果您试图以用户的名义行事,那么您可能需要重新考虑您的方法。您能分享一下您在
HttpClient
上的尝试吗?@shaykibaramczyk是的,我编辑了我的邮件您是否使用了密码或个人访问令牌?Azure DevOps接受PAT而不是您的密码@LeoLiu MSFT是的,谢谢大家的帮助,我刚和PAT一起做了,效果很好:)