Забезпечте MSAL.NET багаторазовим проксі-клієнтом
Реалізуйте IMsalHttpClientFactory навколо спільного HttpClient, що знає проксі, і підключіть його до будівника програми MSAL.
MSAL.NET може отримати свій HTTP-транспорт з IMsalHttpClientFactory. Обгорніть клієнт, налаштований для проксі:
sealed class TokenHttpFactory : IMsalHttpClientFactory
{
private readonly HttpClient client;
public TokenHttpFactory(HttpClient client)
{
this.client = client;
}
public HttpClient GetHttpClient() => client;
}Створіть обробник і клієнт один раз на весь час життя програми, потім підключіть фабрику під час наявного налаштування будівника MSAL:
var proxy = new WebProxy("http://proxy.example:8080");
var handler = new HttpClientHandler { Proxy = proxy, UseProxy = true };
var tokenHttp = new HttpClient(handler);
builder.WithHttpClientFactory(new TokenHttpFactory(tokenHttp));Будівник — це наявний будівник програми MSAL; збережіть його повноваження, реєстрацію клієнта та конфігурацію облікових даних. Для дозволеного загальнодоступного маршруту повноважень HTTPS без облікового запису проксі HTTP-адреса зі списку HTTP-проксі може заповнити приклад WebProxy. Налаштуйте облікові дані проксі в WebProxy за потреби.
Фабрика має бути потокобезпечною. Використовуйте клієнт повторно, а не створюйте новий у кожному виклику GetHttpClient. MSAL не звільняє наданий клієнт; його власник керує цим часом життя.
Це керує HTTP-запитами MSAL. Інтерактивний вхід може відкрити браузер, мережа якого відокремлена. Тому успішний вхід у браузері не доводить, що HTTP-клієнт токена використовує той самий маршрут.