MSAL.NET kan sy HTTP-vervoer van IMsalHttpClientFactory kry. Wikkel 'n kliënt wat vir die proxy opgestel is:

sealed class TokenHttpFactory : IMsalHttpClientFactory
{
    private readonly HttpClient client;

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

    public HttpClient GetHttpClient() => client;
}

Skep die handler en die kliënt een keer vir die leeftyd van die toepassing, en koppel dan die fabriek tydens die bestaande MSAL-bouerkonfigurasie:

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

Die bouer is die toepassing se bestaande MSAL-toepassingsbouer; behou sy gesag, kliëntregistrasie en geloofsbriewe-konfigurasie. Vir 'n toegelate, publiek bereikbare HTTPS-gesagsroete sonder 'n proxy-rekening kan 'n HTTP-adres uit die HTTP-proxylys die voorbeeld-WebProxy vul. Stel proxy-geloofsbriewe op die WebProxy in wanneer nodig.

Die fabriek moet draadveilig wees. Hergebruik die kliënt in plaas daarvan om een binne elke GetHttpClient-oproep te skep. MSAL stel nie die verskafde kliënt vry nie; die eienaar daarvan bestuur daardie leeftyd.

Dit beheer MSAL se HTTP-versoeke. Interaktiewe aanmelding kan 'n blaaier oopmaak waarvan die netwerk apart is. 'n Werkende blaaieraanmelding bewys dus nie dat die token-HTTP-kliënt dieselfde roete het nie.

Verwante artikels