Zapewnij MSAL.NET wielokrotnie używalny klient proxy
Zaimplementuj IMsalHttpClientFactory wokół współdzielonego HttpClient obsługującego proxy i podłącz go do konstruktora aplikacji MSAL.
MSAL.NET może pobierać swój transport HTTP z IMsalHttpClientFactory. Opakuj klienta skonfigurowanego dla proxy:
sealed class TokenHttpFactory : IMsalHttpClientFactory
{
private readonly HttpClient client;
public TokenHttpFactory(HttpClient client)
{
this.client = client;
}
public HttpClient GetHttpClient() => client;
}Utwórz program obsługi i klienta raz na cały okres życia aplikacji, a następnie podłącz fabrykę podczas istniejącej konfiguracji konstruktora 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));Konstruktor to istniejący konstruktor aplikacji MSAL; zachowaj jego uprawnienia, rejestrację klienta i konfigurację poświadczeń. Dla dozwolonej, publicznie dostępnej trasy urzędu HTTPS bez konta proxy adres HTTP z listy proxy HTTP może wypełnić przykładowy WebProxy. Skonfiguruj poświadczenia proxy na WebProxy, gdy jest to potrzebne.
Fabryka musi być bezpieczna wątkowo. Używaj ponownie klienta zamiast tworzyć go w każdym wywołaniu GetHttpClient. MSAL nie usuwa dostarczonego klienta; jego właściciel zarządza tym okresem życia.
To kontroluje żądania HTTP MSAL. Interaktywne logowanie może otworzyć przeglądarkę, której sieć jest osobna. Działające logowanie w przeglądarce nie dowodzi więc, że klient HTTP tokenu ma tę samą trasę.