Забяспечце MSAL.NET паўторна выкарыстоўваным проксі-кліентам
Рэалізуйце IMsalHttpClientFactory вакол агульнага HttpClient з падтрымкай проксі і падключыце яго да пабудоўніка праграмы MSAL.
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-кліент токена мае той жа маршрут.