MSAL.NET کو دوبارہ استعمال کے قابل پراکسی کلائنٹ فراہم کریں
مشترکہ پراکسی سے واقف HttpClient کے گرد IMsalHttpClientFactory نافذ کریں اور اسے 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 فراہم کردہ کلائنٹ کو ضائع نہیں کرتا؛ اس کا مالک اس عمر کا انتظام کرتا ہے۔
یہ MSAL کی HTTP درخواستوں کو کنٹرول کرتا ہے۔ انٹرایکٹو سائن ان ایسا براؤزر کھول سکتا ہے جس کا نیٹ ورک الگ ہے۔ اس لیے کامیاب براؤزر لاگ ان یہ ثابت نہیں کرتا کہ ٹوکن کا HTTP کلائنٹ وہی راستہ رکھتا ہے۔