Осигурете на 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 клиентът за токена има същия маршрут.