Fornisci a MSAL.NET un client proxy riutilizzabile
Implementa IMsalHttpClientFactory intorno a un HttpClient condiviso consapevole del proxy e collegalo al generatore di applicazioni MSAL.
MSAL.NET può ottenere il proprio trasporto HTTP da IMsalHttpClientFactory. Avvolgi un client configurato per il proxy:
sealed class TokenHttpFactory : IMsalHttpClientFactory
{
private readonly HttpClient client;
public TokenHttpFactory(HttpClient client)
{
this.client = client;
}
public HttpClient GetHttpClient() => client;
}Crea il gestore e il client una sola volta per la durata dell'applicazione, quindi collega la factory durante la configurazione esistente del generatore 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));Il generatore è il generatore di applicazioni MSAL esistente; conserva la relativa autorità, la registrazione del client e la configurazione delle credenziali. Per una route di autorità HTTPS consentita e raggiungibile pubblicamente senza account proxy, un indirizzo HTTP dall'elenco di proxy HTTP può riempire il WebProxy di esempio. Configura le credenziali del proxy sul WebProxy quando necessario.
La factory deve essere thread-safe. Riutilizza il client invece di crearne uno a ogni chiamata di GetHttpClient. MSAL non elimina il client fornito; il suo proprietario ne gestisce la durata.
Questo controlla le richieste HTTP di MSAL. L'accesso interattivo può aprire un browser la cui rete è separata. Un accesso riuscito nel browser non dimostra quindi che il client HTTP del token segua lo stesso percorso.