จัดหาไคลเอนต์พร็อกซีที่ใช้ซ้ำได้ให้กับ 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 ของโทเค็นใช้เส้นทางเดียวกัน