Poskytněte MSAL.NET opakovaně použitelný proxy klient
Implementujte IMsalHttpClientFactory kolem sdíleného HttpClient, který zná proxy, a připojte jej ke staviteli aplikace MSAL.
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.