我已经在AzureAD中创建了我的应用程序,并使用权限“Azure DevOps”。
下面是我从Azure DevOps获取项目列表的代码:
using (HttpClient client = new HttpClient())
{
HttpRequestMessage requestMessage = new HttpRequestMessage(HttpMethod.Post, "https://login.microsoftonline.com/21d63aec-6502-4638-98f3-04587e69d53b/oauth2/v2.0/token");
requestMessage.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
Dictionary<String, String> form = new Dictionary<String, String>()
{
{ "grant_type", "client_credentials" },
{ "client_id", "ac313ad2...." },
{ "scope", "https://app.vssps.visualstudio.com/.default" },
{ "client_secret", "BX0RldhqL...." }
};
requestMessage.Content = new FormUrlEncodedContent(form);
HttpResponseMessage responseMessage = client.SendAsync(requestMessage).Result;
if (responseMessage.IsSuccessStatusCode)
{
String body = responseMessage.Content.ReadAsStringAsync().Result;
JsonConvert.PopulateObject(body, tokenModel);
}
}
using (ProjectHttpClient projectHttpClient = new ProjectHttpClient(new Uri("https://dev.azure.com/AlfabetChennaiDev"), new VssOAuthAccessTokenCredential(tokenModel.AccessToken)))
{
IEnumerable<TeamProjectReference> projects = projectHttpClient.GetProjects().Result;
}
但是我遇到了错误,提示“您没有权限访问https://dev.azure.com”。
我使用的是oAuth 2.0客户端凭据流来获取访问令牌。可能的原因是什么?