MSAL.NET își poate obține transportul HTTP de la IMsalHttpClientFactory. Înveliți un client configurat pentru proxy:

sealed class TokenHttpFactory : IMsalHttpClientFactory
{
    private readonly HttpClient client;

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

    public HttpClient GetHttpClient() => client;
}

Creați handlerul și clientul o singură dată pentru durata de viață a aplicației, apoi atașați fabrica în timpul configurării existente a constructorului 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));

Constructorul este constructorul existent al aplicației MSAL; păstrați autoritatea, înregistrarea clientului și configurația acreditărilor. Pentru o rută de autoritate HTTPS permisă și accesibilă public fără cont de proxy, o adresă HTTP din lista de proxy HTTP poate completa WebProxy din exemplu. Configurați acreditările proxy pe WebProxy atunci când este necesar.

Fabrica trebuie să fie sigură pentru fire. Reutilizați clientul în loc să creați unul în fiecare apel GetHttpClient. MSAL nu elimină clientul furnizat; proprietarul acestuia gestionează durata de viață.

Aceasta controlează cererile HTTP ale MSAL. Autentificarea interactivă poate deschide un browser a cărui rețea este separată. Prin urmare, o autentificare reușită în browser nu dovedește că clientul HTTP al tokenului are aceeași rută.

Articole similare