【问题标题】:azure DevOps basic Auth using HttpClient (FAILED)使用 HttpClient 的天蓝色 DevOps 基本身份验证(失败)
【发布时间】: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


【解决方案1】:

您无法将网络凭据发送到 Azure Devops。它不接受这种身份验证。您可以使用个人访问令牌,或使用 Active Directory API 来获取访问权限。

All is explained on the very first "Getting started" pages on how to use the Azure DevOps APIs.

complete sample for Interactive User+Pass auth is available here

如果您试图代表用户行事,那么您可能需要重新考虑您的方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-02
    • 1970-01-01
    • 1970-01-01
    • 2016-08-28
    相关资源
    最近更新 更多