Obezbedite MSAL.NET višekratno upotrebljivim proxy klijentom
Implementirajte IMsalHttpClientFactory oko zajedničkog HttpClient-a koji poznaje proxy i priložite ga graditelju MSAL aplikacije.
MSAL.NET može dobiti svoj HTTP transport od IMsalHttpClientFactory. Obavijte klijent konfigurisan za proxy:
sealed class TokenHttpFactory : IMsalHttpClientFactory
{
private readonly HttpClient client;
public TokenHttpFactory(HttpClient client)
{
this.client = client;
}
public HttpClient GetHttpClient() => client;
}Kreirajte rukovaoca i klijent jednom za životni vek aplikacije, zatim priložite fabriku tokom postojeće konfiguracije MSAL graditelja:
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));Graditelj je postojeći MSAL graditelj aplikacije; zadržite njegov autoritet, registraciju klijenta i konfiguraciju akreditive. Za dozvoljenu javno dostupnu HTTPS rutu autoriteta bez proxy naloga, HTTP adresa sa liste HTTP proxyja može popuniti primer WebProxy. Konfigurišite proxy akreditive na WebProxy kada je potrebno.
Fabrika mora biti sigurna za niti. Ponovo koristite klijent umesto stvaranja novog u svakom pozivu GetHttpClient. MSAL ne odlaže dostavljeni klijent; njegov vlasnik upravlja tim vekom.
Ovo kontroliše MSAL HTTP zahteve. Interaktivna prijava može otvoriti pregledač čija je mreža odvojena. Zato uspešna prijava u pregledaču ne dokazuje da tokenov HTTP klijent ima istu rutu.