Azure Devops个人访问令牌(PAT)停止工作

问题描述 投票:0回答:1

我能够很好地使用Azure Devops Rest API,但突然代码停止工作(甚至Azure Devops在其文档中提供的相同示例)。

我试图撤销现有的PAT并生成新的,仍然无法正常工作。

public static async void PrintBuilds()
{
       try
       {
           var personalaccesstoken = "PAT";

           using (HttpClient client = new HttpClient())
           {
               client.DefaultRequestHeaders.Accept.Add(
                   new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));

               client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic",
                   Convert.ToBase64String(
                       System.Text.ASCIIEncoding.ASCII.GetBytes(
                           string.Format("{0}:{1}", "", personalaccesstoken))));

               using (HttpResponseMessage response = client.GetAsync(
                    "https://dev.azure.com/{Organization}/{Projcet}/_apis/build/builds?api-version=5.0").Result)
               {
                    esponse.EnsureSuccessStatusCode();
                   string responseBody = await response.Content.ReadAsStringAsync();
                   Console.WriteLine(responseBody);
               }
           }
       }
       catch (Exception ex)
       {
           Console.WriteLine(ex.ToString());
       }
}

我期待一个JSON输出,但我得到HTTP状态302,即重定向到visualstudio.com登录页面 - 这可能表明我的PAT有一些...

c# api azure-devops azure-devops-rest-api
1个回答
0
投票

此代码表明您没有将用户名传递给auth标头,而您应该这样做,这是我的powershell代码的样子:

$pat = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes("user@domain:$token"))
© www.soinside.com 2019 - 2024. All rights reserved.