VSTS REST API 使用基本授权时出错(用户名和密码)
VSTS REST API Error when using Basic Authorization (username & password)
我使用 postman 工具生成了一个带有 Headers 的不记名令牌,带有用户名和密码的基本授权以及 Body。
当我尝试通过 VSTS 中的 Web 服务请求执行相同操作时出现错误。
基本授权提供用户名密码的语法是什么?
您可以尝试下面的示例来使用具有基本授权的用户名和密码来调用 REST API:
C#:
var httpClient = new HttpClient();
var byteArray = Encoding.ASCII.GetBytes(string.Format("{0}:{1}", "Domain\username", "password"));
httpClient.DefaultRequestHeaders.Authorization
= new AuthenticationHeaderValue("Basic", Convert.ToBase64String(byteArray));
var response = await httpClient.GetStringAsync("https://account.visualstudio.com/_apis/git/repositories");
Console.WriteLine(response);
PowerShell:
Param(
[string]$collectionurl = "https://account.visualstudio.com",
[string]$project = "ProjectName",
[string]$user = "username",
[string]$token = "Password/PAT"
)
# Base64-encodes the Personal Access Token (PAT) appropriately
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $user,$token)))
$baseUrl = "$collectionurl/$project/_apis/wit/reporting/workitemrevisions?includeLatestOnly=true&api-version=5.0-preview.2"
$response = (Invoke-RestMethod -Uri $baseUrl -Method Get -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)}).values
有关身份验证的详细信息,请参阅 Choosing the right authentication mechanism。
如果您有 PAT(个人访问令牌),您可以使用它进行基本身份验证,密码字段中没有用户名和 PAT。
我使用 postman 工具生成了一个带有 Headers 的不记名令牌,带有用户名和密码的基本授权以及 Body。
当我尝试通过 VSTS 中的 Web 服务请求执行相同操作时出现错误。
基本授权提供用户名密码的语法是什么?
您可以尝试下面的示例来使用具有基本授权的用户名和密码来调用 REST API:
C#:
var httpClient = new HttpClient();
var byteArray = Encoding.ASCII.GetBytes(string.Format("{0}:{1}", "Domain\username", "password"));
httpClient.DefaultRequestHeaders.Authorization
= new AuthenticationHeaderValue("Basic", Convert.ToBase64String(byteArray));
var response = await httpClient.GetStringAsync("https://account.visualstudio.com/_apis/git/repositories");
Console.WriteLine(response);
PowerShell:
Param(
[string]$collectionurl = "https://account.visualstudio.com",
[string]$project = "ProjectName",
[string]$user = "username",
[string]$token = "Password/PAT"
)
# Base64-encodes the Personal Access Token (PAT) appropriately
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $user,$token)))
$baseUrl = "$collectionurl/$project/_apis/wit/reporting/workitemrevisions?includeLatestOnly=true&api-version=5.0-preview.2"
$response = (Invoke-RestMethod -Uri $baseUrl -Method Get -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)}).values
有关身份验证的详细信息,请参阅 Choosing the right authentication mechanism。
如果您有 PAT(个人访问令牌),您可以使用它进行基本身份验证,密码字段中没有用户名和 PAT。