使用基本授权(用户名和密码)时出现 VSTS REST API 错误
Posted
技术标签:
【中文标题】使用基本授权(用户名和密码)时出现 VSTS REST API 错误【英文标题】:VSTS REST API Error when using Basic Authorization (username & password) 【发布时间】:2019-01-04 15:57:15 【问题描述】:使用邮递员工具,我生成了一个带有标头的不记名令牌,带有用户名和密码的基本授权以及正文。
当我通过 VSTS 中的 Web 服务请求尝试相同的操作时遇到错误。
基本授权提供用户名密码的语法是什么?
【问题讨论】:
您声明您收到“错误”。 什么错误是什么? 看一下规范:tools.ietf.org/html/rfc7617 【参考方案1】:如果您有 PAT(个人访问令牌),您可以将其用于基本身份验证,密码字段中没有用户名和 PAT。
【讨论】:
【参考方案2】:您可以尝试以下示例,使用具有基本授权的用户名和密码来调用 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。
【讨论】:
他想知道使用 Postman 工具,而不是使用 C#。标签没有 C#。以上是关于使用基本授权(用户名和密码)时出现 VSTS REST API 错误的主要内容,如果未能解决你的问题,请参考以下文章
使用 laravel Sanctum 和 api 令牌身份验证获取用户时出现 401(未经授权)[重复]
使用 Fabric SDK 从 Twitter 授权中取消时出现授权错误
当用户在 Blazor Webassembly 身份验证和授权中具有多个角色时出现问题?