Проверка того, что BaseAddressAuthorizationMessageHandler прикрепляет токены доступа.C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Проверка того, что BaseAddressAuthorizationMessageHandler прикрепляет токены доступа.

Сообщение Anonymous »

В моем приложении Blazor WASM я получаю код состояния 401 -Unauthorized, когда вызываю внутренний API, используя следующий код. Как мне проверить, что к моим вызовам API прикреплен действительный access_token?
Вот код Program.cs:

Код: Выделить всё

builder.Services.AddHttpClient("MyApiClient",
client => client.BaseAddress = new Uri("https://api.test.com"))
.AddHttpMessageHandler();

builder.Services.AddScoped(sp => sp.GetRequiredService()
.CreateClient("MyApiClient"));
И в своем сервисе я делаю вызов API с помощью этого кода:

Код: Выделить всё

public async Task GetUser()
{
// Set URL
var url = "/account/info";
var user = await GetAsync(url);
return user;
}

private async Task GetAsync(string url)
{
if (string.IsNullOrWhiteSpace(url))
return default;

using (var client = _httpClientFactory.CreateClient("MyApiClient"))
{
var result = await client.GetAsync(url);
if (!result.IsSuccessStatusCode)
throw new Exception("My API GET call failed. URL: " + url);

var json = await result.Content.ReadAsStringAsync();
return JsonSerializer.Deserialize(json);
}
}
Вы видите что-нибудь, что здесь выглядит не так? Если нет, то как я могу убедиться, что к моим вызовам API прикреплен действительный access_token?
P.S. Я вижу, что HttpClient создан правильно, а BaseAddress верен в полученном сообщении об ошибке. Сообщение об ошибке представляет собой стандартную ошибку несанкционированного доступа. Я не вижу никаких дополнительных данных в сообщении об ошибке, кроме URL-адреса. определенно правильный.
Я также хочу упомянуть, что я обрабатываю управление идентификацией и токены доступа через Azure AD B2C. Эта настройка кажется правильной, поскольку пользователь может нормально войти в систему, и идентификатор пользователя также верен.
ОБНОВЛЕНИЕ:
Простая проверка HttpClient в методе GetAsync() показывает, что access_token НЕ прикрепляется к вызову - как вы можете видеть на следующем изображении, DefaultRequestHeaders имеет значение null. У него должна быть авторизация со значением Bearer {access_token_value – см. ниже.
На данный момент я почти уверен, что это проблема конфигурации. . Также обратите внимание, что «автономные» приложения Blazor WASM НЕ получают access_token автоматически, и для их включения в процесс входа необходимы дополнительные области. Я еще не выяснил, какая конфигурация правильная, и когда это сделаю, опубликую ее здесь.
[img]https://i .sstatic.net/82QfDEZT.png[/img]


Подробнее здесь: https://stackoverflow.com/questions/791 ... ess-tokens
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Проверка того, что BaseAddressAuthorizationMessageHandler прикрепляет токены доступа.
    Anonymous » » в форуме C#
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • Проверка того, что BaseAddressAuthorizationMessageHandler прикрепляет токены доступа.
    Anonymous » » в форуме C#
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous
  • Podio API повторно прикрепляет файл к другому элементу
    Гость » » в форуме Php
    0 Ответы
    22 Просмотры
    Последнее сообщение Гость
  • Emailmultialternatives прикрепляет файл и html-содержимое в django
    Anonymous » » в форуме Python
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • Функция Signinasync не прикрепляет файлы cookie к клиентскому браузеру
    Anonymous » » в форуме C#
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»