MSAL.NET သည် ၎င်း၏ HTTP သယ်ယူပို့ဆောင်မှုကို IMsalHttpClientFactory မှ ရယူနိုင်သည်။ proxy အတွက် ပြင်ဆင်ထားသော client ကို ခြုံပါ:

sealed class TokenHttpFactory : IMsalHttpClientFactory
{
    private readonly HttpClient client;

    public TokenHttpFactory(HttpClient client)
    {
        this.client = client;
    }

    public HttpClient GetHttpClient() => client;
}

application ၏ သက်တမ်းတစ်လျှောက် handler နှင့် client ကို တစ်ကြိမ်တည်း ဖန်တီးပြီး ရှိပြီးသား MSAL builder ဖွဲ့စည်းမှုအတွင်း factory ကို ချိတ်ဆက်ပါ:

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));

builder သည် application ၏ ရှိပြီးသား MSAL application builder ဖြစ်သည်။ ၎င်း၏ authority၊ client မှတ်ပုံတင်ခြင်းနှင့် အထောက်အထား ဖွဲ့စည်းမှုကို ထိန်းသိမ်းပါ။ proxy အကောင့်မပါဘဲ ခွင့်ပြုထားသော အများသူငှာ ရောက်ရှိနိုင်သော HTTPS authority လမ်းကြောင်းအတွက် HTTP proxy စာရင်းမှ HTTP လိပ်စာသည် နမူနာ WebProxy ကို ဖြည့်နိုင်သည်။ လိုအပ်ပါက WebProxy တွင် proxy အထောက်အထားများကို ပြင်ဆင်ပါ။

factory သည် thread-safe ဖြစ်ရမည်။ GetHttpClient ခေါ်ဆိုမှုတိုင်းအတွင်း အသစ်တစ်ခု တည်ဆောက်မည့်အစား client ကို ပြန်လည်အသုံးပြုပါ။ MSAL သည် ပေးထားသော client ကို ဖျက်ဆီးမည်မဟုတ်ပါ။ ၎င်း၏ ပိုင်ရှင်က ထိုသက်တမ်းကို စီမံသည်။

၎င်းသည် MSAL ၏ HTTP တောင်းဆိုမှုများကို ထိန်းချုပ်သည်။ အပြန်အလှန် လက်မှတ်ထိုးဝင်ခြင်းသည် ကွန်ရက်သီးခြားဖြစ်သော browser တစ်ခုကို ဖွင့်နိုင်သည်။ ထို့ကြောင့် browser ဖြင့် အောင်မြင်စွာ ဝင်ရောက်ခြင်းသည် token ၏ HTTP client သည် တူညီသော လမ်းကြောင်းရှိကြောင်း သက်သေမပြပါ။

ဆက်စပ်ဆောင်းပါးများ