Microsoft Partner Center API - 403-Forbidden response after successful login

Viewed 49

I cloned the official microsoft parnter center migration api repo & installed all the required tools. Afterwards I build the project without any problems. I have chosen option 1 to export all customers. After logging in in my browser, the website said something like: successfull login, you can close the tab. But a System.Net.Http.HttpRequestException: 'Response status code does not indicate success: 403 (Forbidden).' was thrown. The (sandbox-) account I am using has all the peremissions needed for this action.

        {
            var request = new HttpRequestMessage(HttpMethod.Get, route);
            request.Headers.Add("MS-CorrelationId", Guid.NewGuid().ToString());
            if (!string.IsNullOrWhiteSpace(continuationToken))
            {
                request.Headers.Add("MS-ContinuationToken", continuationToken);
                route = $"{Routes.GetCustomers}&seekOperation=next";
            }

            request.RequestUri = new Uri(route);

            var response = await httpClient.SendAsync(request).ConfigureAwait(false);
            if (response.StatusCode == HttpStatusCode.BadRequest)
            {
                var customerErrorResponse = await response.Content.ReadFromJsonAsync<CustomerErrorResponse>();
                //// If we get error code 2000 then it means we fetched all the records.
                if (customerErrorResponse?.Code == 2000)
                {
                    break;
                }
            }

            if (response.StatusCode == HttpStatusCode.Unauthorized)
            {
                authenticationResult = await this.tokenProvider.GetTokenAsync();
                httpClient.DefaultRequestHeaders.Clear();
                httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", authenticationResult.AccessToken);
                httpClient.DefaultRequestHeaders.Add(Constants.PartnerCenterClientHeader, Constants.ClientName);
                request = new HttpRequestMessage(HttpMethod.Get, route);
                request.Headers.Add("MS-CorrelationId", Guid.NewGuid().ToString());
                request.Headers.Add("MS-ContinuationToken", continuationToken);

                response = await httpClient.SendAsync(request).ConfigureAwait(false);
            }

            response.EnsureSuccessStatusCode();
The detailed error message is: 
`System.Net.Http.HttpRequestException
  HResult=0x80131500
  Message=Response status code does not indicate success: 403 (Forbidden).
  Source=System.Net.Http
  StackTrace:
   at System.Net.Http.HttpResponseMessage.EnsureSuccessStatusCode()
   at NCEBulkMigrationTool.CustomerProvider.<ExportCustomersAsync>d__2.MoveNext() in C:\Users\bst\Documents\projects\Partner-Center-Tool\NCEBulkMigrationTool\CustomerProvider.cs:line 81
   at Program.<<<Main>$>g__RunAsync|0_1>d.MoveNext() in C:\Users\bst\Documents\projects\Partner-Center-Tool\NCEBulkMigrationTool\Program.cs:line 98
   at Program.<<Main>$>d__0.MoveNext() in C:\Users\bst\Documents\projects\Partner-Center-Tool\NCEBulkMigrationTool\Program.cs:line 60

`

I am using Visual Studio 2022 and .NET 6

0 Answers
Related