MSAL.NET může získat svůj HTTP transport z IMsalHttpClientFactory. Obalte klienta nakonfigurovaného pro proxy:

sealed class TokenHttpFactory : IMsalHttpClientFactory
{
    private readonly HttpClient client;

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

    public HttpClient GetHttpClient() => client;
}

Vytvořte obslužnou rutinu a klienta jednou pro celou životnost aplikace a poté připojte továrnu během stávající konfigurace stavitele 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));

Stavitel je stávající stavitel aplikace MSAL; zachovejte jeho autoritu, registraci klienta a konfiguraci přihlašovacích údajů. Pro povolenou veřejně dostupnou trasu autority HTTPS bez proxy účtu může HTTP adresa ze seznamu HTTP proxy vyplnit ukázkový WebProxy. V případě potřeby nakonfigurujte přihlašovací údaje proxy na WebProxy.

Továrna musí být bezpečná pro vlákna. Klienta znovu používejte místo vytváření nového v každém volání GetHttpClient. MSAL dodaného klienta neodstraňuje; jeho životnost spravuje jeho vlastník.

Tím se řídí HTTP požadavky MSAL. Interaktivní přihlášení může otevřít prohlížeč, jehož síť je oddělená. Fungující přihlášení v prohlížeči tedy nedokazuje, že HTTP klient tokenu má stejnou trasu.

Související články