Как обеспечить токен носителя (или передавать любой параметр) во время выполнения при настройке ihttpclientFactory ⇐ C#

Место общения программистов C#
Anonymous
Как обеспечить токен носителя (или передавать любой параметр) во время выполнения при настройке ihttpclientFactory

Сообщение Anonymous »

Мы используем новую поддержку DI в IHTTPClientFactory в .NET 9, с различными клиентами, определенными для каждой конечной точки API. Определение статических значений, таких как базовый URL, является простым, но мы хотели бы также определить заголовки авторизации в конфигурации. Звонищий должен предоставить токен для носителя во время выполнения. Как бы мы обновили бы следующую конфигурацию для поддержки передачи токена предъявителя во время выполнения? < /P>
var builder = Host.CreateApplicationBuilder(args);

// removed additional config here

builder.Services.ConfigureHttpClientDefaults(b => b.AddAsKeyed());

builder.Services.AddHttpClient("AzureLogin", c =>
{
c.BaseAddress = new Uri($"https://{AzureLoginUrl}");
});

builder.Services.AddHttpClient("AzureServiceBus", c =>
{
c.BaseAddress = new Uri($"https://{ourNamespace}.{AzureServiceBusUrl}");
// TODO: need to figure out how to provide bearer
// c.DefaultRequestHeaders.Add("Authorization", $"Bearer {bearer}");

});
< /code>
вызывающий абонент выглядит так: < /p>
public class AlertActionService(IConfiguration _config,
[FromKeyedServices("AzureLogin")] HttpClient _azureLoginHttpClient,
[FromKeyedServices("AzureServiceBus")] HttpClient _azureServiceBusHttpClient)
{
// removed additional logic here that gets and sets the bearer value

// **TODO: Move this line to the config in Program.cs but don't how to pass bearer to config**
_azureServiceBusHttpClient.DefaultRequestHeaders.Add("Authorization", $"Bearer {bearer}");

var serviceBusResponse = await _azureServiceBusHttpClient.PostAsync(subdirectory, jsonContent);

// removed additional logic
}


Подробнее здесь: https://stackoverflow.com/questions/796 ... guring-iht

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