تزويد 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 للرمز يسلك المسار نفسه.