[英]How to get Authentication Token to get VSO Workitems using C#
我需要使用C# Rest API調用來獲取 VSO工作項。 我無法弄清楚如何為我的 http 請求獲取令牌。 下面是我所擁有的。 有人可以給我代碼以獲取令牌以向 VSO 進行身份驗證。
using System;
using System.Net.Http;
using System.Threading.Tasks;
namespace GetVSOTask
{
class Program
{
static async Task Main(string[] args)
{
string token = "?????";
var httpClient = new HttpClient
{
BaseAddress = new Uri("https://dev.azure.com/")
};
string URI = $"Microsoft/OSGS/_apis/wit/workitems/31054512?&api-version=6.0";
httpClient.DefaultRequestHeaders.Remove("Authorization");
httpClient.DefaultRequestHeaders.Add("Authorization", "Bearer " + token);
HttpResponseMessage response = await httpClient.GetAsync(URI).ConfigureAwait(false);
var HttpsResponse = await response.Content.ReadAsStringAsync();
Console.WriteLine(HttpsResponse);
Console.ReadLine();
}
}
}
您需要在 Azure DevOps 門戶中生成令牌:
在 Azure DevOps 中登錄您的組織( https://dev.azure.com/{yourorganization} )
在您的主頁上,打開您的用戶設置,然后打開 select 個人訪問令牌。
然后是 select + 新令牌。
將您的令牌命名為 select 您要在其中使用令牌的組織,然后為您的令牌選擇一個生命周期。
Select 此令牌的范圍以授權您的特定任務。
例如,要創建令牌以使構建和發布代理能夠向 Azure DevOps 服務進行身份驗證,請將令牌的 scope 限制為代理池(讀取和管理)。 要讀取審計日志事件,管理和刪除流,select 讀取審計日志,然后 select 創建。
創建 PAT 后,您可以在 Azure DevOps 中需要用戶憑據進行身份驗證的任何地方使用它。
在這里查看更多信息。
要將 PAT 令牌傳遞給 C# HTTP header,您需要將其轉換為 Z1EB445FA6BD078346BF6FA。
string credentials = Convert.ToBase64String(System.Text.ASCIIEncoding.ASCII.GetBytes(string.Format("{0}:{1}", "", "PAT")));
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", credentials);
這是一個例子:
...
{
string credentials = Convert.ToBase64String(System.Text.ASCIIEncoding.ASCII.GetBytes(string.Format("{0}:{1}", "", "PAT")));
using (var client = new HttpClient())
{
client.BaseAddress = new Uri($"https://dev.azure.com/{OrganizationName}"); //url of your organization
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", credentials);
//connect to the REST endpoint
HttpResponseMessage response = client.GetAsync("/ProjectName/_apis/wit/workitems/467?api-version=6.0").Result;
//check to see if we have a successful response
if (response.IsSuccessStatusCode)
{
var value = response.Content.ReadAsStringAsync().Result;
Console.WriteLine(value);
Console.ReadLine();
}
}
}
有關更多詳細信息,您可以參考此文檔或開始使用 REST API 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.