【发布时间】:2020-03-29 09:34:42
【问题描述】:
我正在尝试使用 HttpClient 对我的 Azure Dev 组织进行身份验证。 但它总是失败。
成功通过身份验证的唯一方法是使用这样的客户端库:
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
【问题讨论】:
-
你能分享一下你对
HttpClient的尝试吗? -
@ShaykiAbramczyk 是的,我编辑了我的帖子
-
您使用的是密码还是个人访问令牌? Azure DevOps 接受 PAT 而不是您的密码。 docs.microsoft.com/en-us/azure/devops/organizations/accounts/…
-
@LeoLiu-MSFT 是的,谢谢大家的帮助,我刚刚用 PAT 完成了它,它有效 :)
标签: asp.net asp.net-web-api azure-devops dotnet-httpclient azure-devops-rest-api