MSAL.NET HTTP taşımasını IMsalHttpClientFactory'den alabilir. Proxy için yapılandırılmış bir istemciyi sarın:

sealed class TokenHttpFactory : IMsalHttpClientFactory
{
    private readonly HttpClient client;

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

    public HttpClient GetHttpClient() => client;
}

İşleyiciyi ve istemciyi uygulamanın ömrü boyunca bir kez oluşturun, ardından fabrikayı mevcut MSAL oluşturucu yapılandırması sırasında bağlayın:

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

Oluşturucu, uygulamanın mevcut MSAL uygulama oluşturucusudur; yetkisini, istemci kaydını ve kimlik bilgisi yapılandırmasını koruyun. Proxy hesabı olmadan izin verilen ve herkese açık HTTPS yetki rotası için HTTP proxy listesinden bir HTTP adresi örnek WebProxy'yi doldurabilir. Gerektiğinde proxy kimlik bilgilerini WebProxy üzerinde yapılandırın.

Fabrika iş parçacığı güvenli olmalıdır. Her GetHttpClient çağrısında yeni bir tane oluşturmak yerine istemciyi yeniden kullanın. MSAL sağlanan istemciyi atmaz; ömrünü sahibi yönetir.

Bu, MSAL'ın HTTP isteklerini denetler. Etkileşimli oturum açma, ağı ayrı olan bir tarayıcı açabilir. Bu nedenle çalışan bir tarayıcı oturumu açma, belirtecin HTTP istemcisinin aynı rotayı kullandığını kanıtlamaz.

İlgili makaleler