MSAL.NET може да получи своя HTTP транспорт от IMsalHttpClientFactory. Обвийте клиент, конфигуриран за проксито:

sealed class TokenHttpFactory : IMsalHttpClientFactory
{
    private readonly HttpClient client;

    public TokenHttpFactory(HttpClient client)
    {
        this.client = client;
    }

    public HttpClient GetHttpClient() => client;
}

Създайте манипулатора и клиента веднъж за живота на приложението, след което прикачете фабриката по време на съществуващата конфигурация на 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));

Конструкторът е съществуващият MSAL конструктор на приложението; запазете неговите пълномощия, регистрацията на клиента и конфигурацията на идентификационните данни. За разрешен публично достъпен HTTPS маршрут на пълномощията без прокси акаунт HTTP адрес от списъка с HTTP проксита може да запълни примерния WebProxy. Конфигурирайте прокси идентификационни данни в WebProxy, когато е необходимо.

Фабриката трябва да е безопасна за нишки. Използвайте отново клиента, вместо да създавате такъв при всяко извикване на GetHttpClient. MSAL не освобождава предоставения клиент; неговият собственик управлява този живот.

Това управлява HTTP заявките на MSAL. Интерактивното влизане може да отвори браузър, чиято мрежа е отделна. Затова работещо влизане в браузъра не доказва, че HTTP клиентът за токена има същия маршрут.

Подобни статии