Furnizoni MSAL.NET me një klient proxy të ripërdorshëm
Zbatoni IMsalHttpClientFactory rreth një HttpClient të përbashkët që njeh proxy-n dhe lidheni atë me ndërtuesin e aplikacionit MSAL.
MSAL.NET mund të marrë transportin e tij HTTP nga IMsalHttpClientFactory. Mbështillni një klient të konfiguruar për proxy-n:
sealed class TokenHttpFactory : IMsalHttpClientFactory
{
private readonly HttpClient client;
public TokenHttpFactory(HttpClient client)
{
this.client = client;
}
public HttpClient GetHttpClient() => client;
}Krijoni trajtuesin dhe klientin një herë për jetëgjatësinë e aplikacionit, pastaj lidhni fabrikën gjatë konfigurimit ekzistues të ndërtuesit MSAL:
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));Ndërtuesi është ndërtuesi ekzistues i aplikacionit MSAL; ruani autoritetin, regjistrimin e klientit dhe konfigurimin e kredencialeve. Për një rrugë autoriteti HTTPS të lejuar dhe publikisht të arritshme pa llogari proxy, një adresë HTTP nga lista e proxy-ve HTTP mund të plotësojë WebProxy shembull. Konfiguroni kredencialet e proxy-t në WebProxy kur të nevojitet.
Fabrika duhet të jetë e sigurt për fijet. Ripërdorni klientin në vend që të krijoni një brenda çdo thirrjeje GetHttpClient. MSAL nuk e asgjëson klientin e furnizuar; pronari i tij menaxhon atë jetëgjatësi.
Kjo kontrollon kërkesat HTTP të MSAL. Hyrja interaktive mund të hapë një shfletues rrjeti i të cilit është i veçantë. Prandaj një hyrje e suksesshme në shfletues nuk provon që klienti HTTP i tokenit ka të njëjtën rrugë.