ספקו ל-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 של האסימון יש את אותו מסלול.