Gi MSAL.NET en gjenbrukbar proxyklient
Implementer IMsalHttpClientFactory rundt en delt proxybevisst HttpClient, og knytt den til MSAL-applikasjonsbyggeren.
MSAL.NET kan hente HTTP-transporten sin fra IMsalHttpClientFactory. Pakk inn en klient som er konfigurert for proxyen:
sealed class TokenHttpFactory : IMsalHttpClientFactory
{
private readonly HttpClient client;
public TokenHttpFactory(HttpClient client)
{
this.client = client;
}
public HttpClient GetHttpClient() => client;
}Opprett handleren og klienten én gang for applikasjonens levetid, og knytt deretter fabrikken til under 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; behold dens autoritet, klientregistrering og legitimasjonskonfigurasjon. For en tillatt offentlig tilgjengelig HTTPS-autoritetsrute uten proxykonto kan en HTTP-adresse fra HTTP-proxylisten fylle eksempelets WebProxy. Konfigurer proxy-legitimasjon på WebProxy når det er nødvendig.
Fabrikken må være trådsikker. Gjenbruk klienten i stedet for å opprette en i hvert GetHttpClient-kall. MSAL avslutter ikke den medfølgende klienten; eieren dens styrer den levetiden.
Dette styrer MSALs HTTP-forespørsler. Interaktiv pålogging kan åpne en nettleser med et eget nettverk. En fungerende nettleserpålogging beviser derfor ikke at tokenets HTTP-klient har samme rute.