C# 如何使用C获取身份验证令牌以获取VSO工作项
我需要使用C Rest API调用获取VSO工作项。 我无法确定如何获取http请求的令牌。 下面是我所拥有的。有人能给我代码来获取令牌以向VSO进行身份验证吗C# 如何使用C获取身份验证令牌以获取VSO工作项,c#,visual-studio,azure-devops,azure-devops-rest-api,C#,Visual Studio,Azure Devops,Azure Devops Rest Api,我需要使用C Rest API调用获取VSO工作项。 我无法确定如何获取http请求的令牌。 下面是我所拥有的。有人能给我代码来获取令牌以向VSO进行身份验证吗 您需要在Azure DevOps门户中生成令牌: 在Azure DevOps中登录到您的组织 从主页打开用户设置,然后选择个人访问令牌 然后选择+新令牌 命名令牌,选择要使用令牌的组织,然后选择令牌的寿命 选择此令牌的作用域以授权您的特定任务 例如,要创建令牌以使生成和发布代理能够对Azure DevOps服务进行身份验证,请将令牌的作
您需要在Azure DevOps门户中生成令牌: 在Azure DevOps中登录到您的组织 从主页打开用户设置,然后选择个人访问令牌 然后选择+新令牌 命名令牌,选择要使用令牌的组织,然后选择令牌的寿命 选择此令牌的作用域以授权您的特定任务 例如,要创建令牌以使生成和发布代理能够对Azure DevOps服务进行身份验证,请将令牌的作用域限制为代理池读取和管理。要读取审核日志事件并管理和删除流,请选择“读取审核日志”,然后选择“创建” 完成后,请确保复制令牌。为了您的安全,它不会再次显示。使用此令牌作为您的密码。 创建PAT后,您可以在Azure DevOps中需要用户凭据进行身份验证的任何位置使用它
查看更多信息。要将PAT令牌传递给C HTTP头,需要将其转换为Base64字符串
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();
}
}
}
有关更多详细信息,请参阅或。我已经有了您提供的链接。我需要密码来获取令牌。嗨@Vinny。这张票有更新吗?如果答案能给你一些帮助,请随时告诉我。只是想提醒一下。我有一个PAT代币。我试图在上面的代码中传递它。我没有得到任何有效的结果我的Http Rest API调用需要修整吗?
...
{
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();
}
}
}