Geef MSAL.NET een herbruikbare proxyclient
Implementeer IMsalHttpClientFactory rond een gedeelde proxybewuste HttpClient en koppel deze aan de MSAL-toepassingsbuilder.
MSAL.NET kan zijn HTTP-transport van IMsalHttpClientFactory betrekken. Wikkel een client die voor de proxy is geconfigureerd:
sealed class TokenHttpFactory : IMsalHttpClientFactory
{
private readonly HttpClient client;
public TokenHttpFactory(HttpClient client)
{
this.client = client;
}
public HttpClient GetHttpClient() => client;
}Maak de handler en de client één keer voor de levensduur van de toepassing en koppel daarna de fabriek tijdens de bestaande MSAL-builderconfiguratie:
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));De builder is de bestaande MSAL-toepassingsbuilder van de toepassing; behoud de autoriteit, clientregistratie en referentieconfiguratie ervan. Voor een toegestane, openbaar bereikbare HTTPS-autoriteitsroute zonder proxyaccount kan een HTTP-adres uit de HTTP-proxylijst de voorbeeld-WebProxy vullen. Configureer proxyreferenties op de WebProxy wanneer nodig.
De fabriek moet threadveilig zijn. Hergebruik de client in plaats van er een te maken in elke GetHttpClient-aanroep. MSAL verwijdert de geleverde client niet; de eigenaar ervan beheert die levensduur.
Dit beheert de HTTP-verzoeken van MSAL. Interactieve aanmelding kan een browser openen waarvan het netwerk apart is. Een werkende browseraanmelding bewijst dus niet dat de HTTP-client van het token dezelfde route heeft.