Giv MSAL.NET en genbrugelig proxyklient
Implementer IMsalHttpClientFactory omkring en delt proxybevidst HttpClient, og knyt den til MSAL-applikationsbyggeren.
MSAL.NET kan hente sin HTTP-transport fra IMsalHttpClientFactory. Pak en klient ind, der er konfigureret til proxyen:
sealed class TokenHttpFactory : IMsalHttpClientFactory
{
private readonly HttpClient client;
public TokenHttpFactory(HttpClient client)
{
this.client = client;
}
public HttpClient GetHttpClient() => client;
}Opret handleren og klienten én gang for applikationens levetid, og knyt derefter fabrikken under den eksisterende MSAL-builder-konfiguration:
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));Byggeren er applikationens eksisterende MSAL-applikationsbygger; bevar dens authority, klientregistrering og legitimationskonfiguration. Til en tilladt offentligt tilgængelig HTTPS-authority-rute uden en proxykonto kan en HTTP-adresse fra HTTP-proxylisten udfylde eksemplets WebProxy. Konfigurer proxy-legitimationsoplysninger på WebProxy, når det er nødvendigt.
Fabrikken skal være trådsikker. Genbrug klienten i stedet for at oprette en i hvert GetHttpClient-kald. MSAL bortskaffer ikke den leverede klient; dens ejer styrer den levetid.
Dette styrer MSALs HTTP-anmodninger. Interaktiv login kan åbne en browser, hvis netværk er adskilt. Et fungerende browserlogin beviser derfor ikke, at tokenets HTTP-klient har samme rute.