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ę.

Powiązane artykuły