簡體   English   中英

生成令牌但不執行 azure url

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM