MSAL.NET kan hente sin HTTP-transport fra IMsalHttpClientFactory. Pak en klient ind, der er konfigureret til proxyen:

sealed class TokenHttpFactory : IMsalHttpClientFactory
{
    private readonly HttpClient client;

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

    public HttpClient GetHttpClient() => client;
}

Opret handleren og klienten én gang for applikationens levetid, og knyt derefter fabrikken under den eksisterende MSAL-builder-konfiguration:

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

Byggeren er applikationens eksisterende MSAL-applikationsbygger; bevar dens authority, klientregistrering og legitimationskonfiguration. Til en tilladt offentligt tilgængelig HTTPS-authority-rute uden en proxykonto kan en HTTP-adresse fra HTTP-proxylisten udfylde eksemplets WebProxy. Konfigurer proxy-legitimationsoplysninger på WebProxy, når det er nødvendigt.

Fabrikken skal være trådsikker. Genbrug klienten i stedet for at oprette en i hvert GetHttpClient-kald. MSAL bortskaffer ikke den leverede klient; dens ejer styrer den levetid.

Dette styrer MSALs HTTP-anmodninger. Interaktiv login kan åbne en browser, hvis netværk er adskilt. Et fungerende browserlogin beviser derfor ikke, at tokenets HTTP-klient har samme rute.

Relaterede artikler