[英]Generates the token but does not execute the azure url
我需要從 c # https: //docs.microsoft.com/en-us/rest/api/power-bi-embedded/capacities/resume 獲得這項服務。
為此,我使用 GetAccessToken () function 來獲取身份驗證令牌。
public string GetAccessToken()
{
try
{
string tenantId = "ae4e3a81-xxxxxxxxxxxxxxxxxx";
string clientId = "ca8393b2-xxxxxxxxxxxxxxxxxxxxxxxxx";
string clientSecret = "xxxxxxxxxxxxxxxxxxxxxxxxxx";
string authContextURL = "https://login.windows.net/" + tenantId;
var authenticationContext = new AuthenticationContext(authContextURL);
var credential = new ClientCredential(clientId: clientId, clientSecret: clientSecret);
var result = authenticationContext.AcquireTokenAsync(resource: "https://management.azure.com/", clientCredential: credential).Result;
if (result == null)
{
throw new InvalidOperationException("Failed to obtain the JWT token");
}
string token = result.AccessToken.ToString();
return token;
}
catch (Exception ex)
{
return ex.ToString();
}
}
然后我使用DoWork()方法使用token,可以消費azure ulr。
public void DoWork()
{
string Subscription = "afdbf38c-c33c-45ea-8e9b-===========";
string token = GetAccessToken();
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Add("Authorization", "Bearer " + token);
client.BaseAddress = new Uri("https://management.azure.com/");
// Now you can party with your HttpClient!
using (var response = client.PostAsync($"/subscriptions/{Subscription}/resourceGroups/Reportes/providers/Microsoft.PowerBIDedicated/capacities/powerbiembeddedjre1/resume?api-version=2017-10-01", null).Result)
{
response.EnsureSuccessStatusCode();
}
}
}
但是當我 go 檢查響應時,它會生成一條錯誤消息:
{StatusCode:403,ReasonPhrase:'Forbidden',版本:1.1,內容:System.Net.Http.StreamContent,標頭:{Pragma:無緩存 x-ms-failure-cause:網關 x-ms-request-id: 02D9DF62-0529-4A7F-B492-36CE8584AAD6 X-MS-CORRELATION-REQUEST-ID:02D9DF62-0529-4A7F-B492-B492-36CE8584AAD6 X-MS-ROUTING-ROUTING-ROUTING-ROUTING-ROUTING-ROUTING-ROUTING-ID:CALADACENTRAR:CANADACENTRAL:CANADACENTRAL:CANADAC11111 19111FRES:傳輸安全:max-age = 31536000; includeSubDomains X-Content-Type-Options: nosniff Connection: close Cache-Control: no-cache Date: Thu, 14 Nov 2019 16:37:55 GMT Content-Length: 503 Content-Type: application / json; 字符集 = utf-8 過期:-1}}
我需要什么來解決這個問題?
看起來承載令牌有問題,請嘗試client.SetBearerToken(token);
或者,它正確地發回 403,因為您不符合聲明的要求(信條/客戶問題)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.