Gee MSAL.NET 'n herbruikbare proxy-kliënt
Implementeer IMsalHttpClientFactory rondom 'n gedeelde proxy-bewuste HttpClient en koppel dit aan die MSAL-toepassingsbouer.
MSAL.NET kan sy HTTP-vervoer van IMsalHttpClientFactory kry. Wikkel 'n kliënt wat vir die proxy opgestel is:
sealed class TokenHttpFactory : IMsalHttpClientFactory
{
private readonly HttpClient client;
public TokenHttpFactory(HttpClient client)
{
this.client = client;
}
public HttpClient GetHttpClient() => client;
}Skep die handler en die kliënt een keer vir die leeftyd van die toepassing, en koppel dan die fabriek tydens die bestaande MSAL-bouerkonfigurasie:
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));Die bouer is die toepassing se bestaande MSAL-toepassingsbouer; behou sy gesag, kliëntregistrasie en geloofsbriewe-konfigurasie. Vir 'n toegelate, publiek bereikbare HTTPS-gesagsroete sonder 'n proxy-rekening kan 'n HTTP-adres uit die HTTP-proxylys die voorbeeld-WebProxy vul. Stel proxy-geloofsbriewe op die WebProxy in wanneer nodig.
Die fabriek moet draadveilig wees. Hergebruik die kliënt in plaas daarvan om een binne elke GetHttpClient-oproep te skep. MSAL stel nie die verskafde kliënt vry nie; die eienaar daarvan bestuur daardie leeftyd.
Dit beheer MSAL se HTTP-versoeke. Interaktiewe aanmelding kan 'n blaaier oopmaak waarvan die netwerk apart is. 'n Werkende blaaieraanmelding bewys dus nie dat die token-HTTP-kliënt dieselfde roete het nie.