Gi MSAL.NET en gjenbrukbar proxy-klient
Implementer IMsalHttpClientFactory rundt en delt HttpClient som forstår proxy, og knytt den til MSAL-applikasjonsbyggeren.
MSAL.NET kan hente HTTP-transporten sin fra IMsalHttpClientFactory. Pakk inn en klient som er satt opp for proxyen:
sealed class TokenHttpFactory : IMsalHttpClientFactory
{
private readonly HttpClient client;
public TokenHttpFactory(HttpClient client)
{
this.client = client;
}
public HttpClient GetHttpClient() => client;
}Lag handleren og klienten én gang for applikasjonens levetid, og knytt så fabrikken til i den eksisterende MSAL-byggerkonfigurasjonen:
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 applikasjonens eksisterende MSAL-applikasjonsbygger; ta vare på autoriteten, klientregistreringen og konfigurasjonen av legitimasjon. For en tillatt og offentlig tilgjengelig HTTPS-autoritetsrute uten proxykonto kan en HTTP-adresse fra HTTP-proxyoversikten fylle ut eksempel-WebProxyen. Sett opp proxy-legitimasjon på WebProxy når det trengs.
Fabrikken må tåle samtidige tråder. Bruk klienten om igjen i stedet for å lage en ny i hvert GetHttpClient-kall. MSAL kvitter seg ikke med klienten du gir den; eieren av den styrer levetiden.
Dette styrer HTTP-forespørslene til MSAL. Interaktiv innlogging kan åpne en nettleser med et separat nettverk. En nettleserinnlogging som virker er derfor ikke bevis for at HTTP-klienten for tokenet bruker samme rute.