MSAL.NET kan hämta sin HTTP-transport från IMsalHttpClientFactory. Rappa in en klient som är konfigurerad för proxyn:

sealed class TokenHttpFactory : IMsalHttpClientFactory
{
    private readonly HttpClient client;

    public TokenHttpFactory(HttpClient client)
    {
        this.client = client;
    }

    public HttpClient GetHttpClient() => client;
}

Skapa hanteraren och klienten en gång för programmets livstid och koppla sedan fabriken under den befintliga MSAL-byggarkonfigurationen:

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));

Byggaren är programmets befintliga MSAL-programbyggare; behåll dess behörighet, klientregistrering och autentiseringskonfiguration. För en tillåten, offentligt nåbar HTTPS-behörighetsväg utan proxykonto kan en HTTP-adress från HTTP-proxylistan fylla exemplets WebProxy. Konfigurera proxyautentiseringsuppgifter på WebProxy vid behov.

Fabriken måste vara trådsäker. Återanvänd klienten i stället för att skapa en i varje GetHttpClient-anrop. MSAL gör sig inte av med den medföljande klienten; dess ägare hanterar den livstiden.

Detta styr MSAL:s HTTP-förfrågningar. Interaktiv inloggning kan öppna en webbläsare vars nätverk är separat. En fungerande webbläsarinloggning bevisar därför inte att tokens HTTP-klient har samma väg.

Relaterade artiklar