Подключение к MS graph с помощью http-клиента при попытке аутентификации

#c# #asp.net #sharepoint #microsoft-graph-api #dotnet-httpclient

Вопрос:

Я пытаюсь подключиться к microsoft graph с помощью http-клиента. Это для веб-части sharepoint и ее использования в .net framework 4.6.1

Я установил следующие ссылки.

  • Майкрософт.Идентичность.Клиент 4.35.1
  • Ньютонсофт.Json 13.0.1
  • System.Net.Http 4.3.4

Это и есть код

 var tenantId = "***********************************";
var clientId = "***********************************";
var clientSecret = "***********************************";

// Configure app builder
var authority = $"https://login.microsoftonline.com/{tenantId}";
var app = ConfidentialClientApplicationBuilder
   .Create(clientId)
   .WithClientSecret(clientSecret)
   .WithAuthority(new Uri(authority))
   .Build();

// Acquire tokens for Graph API
var scopes = new[] { "https://graph.microsoft.com/.default" };
var authenticationResult = await app.AcquireTokenForClient(scopes).ExecuteAsync();

// Call Graph API
HttpClient client = new HttpClient();
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", authenticationResult.AccessToken);
client.DefaultRequestHeaders.Accept.Add( new MediaTypeWithQualityHeaderValue("application/json"));

string baseUrl = "https://graph.microsoft.com";
string urlVersion = "v1.0";
string urlRessource = "users";
string urlId = "user@example.ca";
string url = $"{baseUrl}/{urlVersion}/{urlRessource}/{urlId}";
HttpResponseMessage response = await client.GetAsync(url);
var resp = await response.Content.ReadAsStringAsync();
if (response.IsSuccessStatusCode)
{
   User usr = JsonConvert.DeserializeObject<User>(resp);
   test.Text = usr.displayName;
}
 

По какой-то причине при запуске этой строки: var authenticationResult = await app.AcquireTokenForClient(scopes).ExecuteAsync();

Он просто выполняет процесс загрузки, без ошибок и просто не получил ответа.