В настоящее время у меня есть эта конфигурация для клиента HTTP, которую я могу использовать и вводить при необходимости, обернутая с помощью аутентификации JWT, чтобы достичь некоторого адреса API, который имеет несколько конечных точек: < /p>
builder.Services.AddHttpContextAccessor();
builder.Services.AddHttpClient("ApiClient", client =>
{
client.BaseAddress = new Uri(builder.Configuration["BaseUrl:ApiUrl"]);
})
.SetHandlerLifetime(TimeSpan.FromMinutes(5))
.ConfigurePrimaryHttpMessageHandler(() => new SocketsHttpHandler
{
PooledConnectionLifetime = TimeSpan.FromMinutes(5),
EnableMultipleHttp2Connections = true,
MaxConnectionsPerServer = 10,
MaxResponseHeadersLength = 64 * 1024,
});
builder.Services.AddScoped(sp =>
{
var factory = sp.GetRequiredService();
var client = factory.CreateClient("ApiClient");
var httpContext = sp.GetRequiredService().HttpContext;
var jwtToken = httpContext?.User?.FindFirst("JwtToken")?.Value;
if (!string.IsNullOrEmpty(jwtToken))
{
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", jwtToken);
}
return client;
});
< /code>
Я просто задаюсь вопросом, правильный ли это способ сделать это и есть ли другие лучшие подходы для достижения этого в случае, если это считается дорогостоящим или неэффективным. Я делаю Blazor Server и полагаюсь на него в 100 -х странах бритвы, где я публикую/получаю/удаляю данные.
Подробнее здесь: https://stackoverflow.com/questions/797 ... zor-server
Правильный способ сделать httpclient, который может быть введен и используется на сервере Blazor ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение