MSAL.NET dapat memperoleh transport HTTP-nya dari IMsalHttpClientFactory. Bungkus klien yang dikonfigurasi untuk proksi:

sealed class TokenHttpFactory : IMsalHttpClientFactory
{
    private readonly HttpClient client;

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

    public HttpClient GetHttpClient() => client;
}

Buat handler dan klien sekali untuk masa hidup aplikasi, lalu lampirkan pabrik selama konfigurasi pembangun MSAL yang ada:

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));

Pembangun adalah pembangun aplikasi MSAL yang sudah ada; pertahankan otoritasnya, pendaftaran klien, dan konfigurasi kredensialnya. Untuk rute otoritas HTTPS yang diizinkan dan dapat dijangkau publik tanpa akun proksi, alamat HTTP dari daftar proksi HTTP dapat mengisi WebProxy contoh. Konfigurasikan kredensial proksi pada WebProxy bila diperlukan.

Pabrik harus aman untuk utas. Gunakan kembali klien alih-alih membuatnya di dalam setiap panggilan GetHttpClient. MSAL tidak membuang klien yang diberikan; pemiliknya mengelola masa hidup itu.

Ini mengendalikan permintaan HTTP MSAL. Proses masuk interaktif dapat membuka peramban yang jaringannya terpisah. Karena itu, keberhasilan masuk melalui peramban tidak membuktikan bahwa klien HTTP token memiliki rute yang sama.

Artikel terkait