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 क्लाइंट का वही मार्ग है।