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 ของโทเค็นใช้เส้นทางเดียวกัน

บทความที่เกี่ยวข้อง