MSAL.NET pot obtenir el seu transport HTTP d'IMsalHttpClientFactory. Emboliqueu un client configurat per al proxy:

sealed class TokenHttpFactory : IMsalHttpClientFactory
{
    private readonly HttpClient client;

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

    public HttpClient GetHttpClient() => client;
}

Creeu el gestor i el client una vegada per a la vida de l'aplicació i, després, adjunteu la fàbrica durant la configuració existent del constructor 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));

El constructor és el constructor existent de l'aplicació MSAL; conserveu-ne l'autoritat, el registre del client i la configuració de credencials. Per a una ruta d'autoritat HTTPS permesa i accessible públicament sense compte de proxy, una adreça HTTP de la llista de proxys HTTP pot omplir el WebProxy de l'exemple. Configureu les credencials del proxy al WebProxy quan calgui.

La fàbrica ha de ser segura per a fils. Reutilitzeu el client en lloc de crear-ne un a cada crida a GetHttpClient. MSAL no elimina el client proporcionat; el seu propietari en gestiona la vida.

Això controla les sol·licituds HTTP de MSAL. L'inici de sessió interactiu pot obrir un navegador la xarxa del qual és independent. Per tant, un inici de sessió correcte al navegador no demostra que el client HTTP del testimoni tingui la mateixa ruta.

Articles relacionats