Subministre a MSAL.NET un cliente de proxy reutilizable
Implemente IMsalHttpClientFactory arredor dun HttpClient compartido que coñeza o proxy e anexe o ao construtor da aplicación MSAL.
MSAL.NET pode obter o seu transporte HTTP de IMsalHttpClientFactory. Envolva un cliente configurado para o proxy:
sealed class TokenHttpFactory : IMsalHttpClientFactory
{
private readonly HttpClient client;
public TokenHttpFactory(HttpClient client)
{
this.client = client;
}
public HttpClient GetHttpClient() => client;
}Cree o xestor e o cliente unha soa vez durante a vida da aplicación e despois anexe a fábrica durante a configuración existente do construtor de 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));O construtor é o construtor da aplicación MSAL existente; conserve a súa autoridade, o rexistro do cliente e a configuración das credenciais. Para unha ruta de autoridade HTTPS permitida e accesible publicamente sen conta de proxy, un enderezo HTTP da lista de proxies HTTP pode encher o WebProxy do exemplo. Configure as credenciais do proxy no WebProxy cando sexa necesario.
A fábrica debe ser segura para fíos. Reutilice o cliente en lugar de crear un dentro de cada chamada a GetHttpClient. MSAL non elimina o cliente subministrado; o seu propietario xestiona esa vida útil.
Isto controla as solicitudes HTTP de MSAL. O inicio de sesión interactivo pode abrir un navegador cuxa rede é independente. Polo tanto, un inicio de sesión correcto no navegador non demostra que o cliente HTTP do token teña a mesma ruta.