Proxy URL ၏ UserInfo သည် WebProxy.Credentials မဟုတ်ပါ
NetworkCredential မဖန်တီးမီ HTTP proxy URI မှ အသုံးပြုသူအချက်အလက်များကို ထုတ်ယူပြီး ကုဒ်ဖျက်ပါ။
WebProxy ၏ URI တည်ဆောက်သူသည် အဆုံးမှတ်တစ်ခုကို ရွေးချယ်ရုံသာဖြစ်ပြီး ထို URI ၏ အသုံးပြုသူအချက်အလက်များဖြင့် Credentials ကို မဖြည့်ပါ။ အက်ပ်မှ အတည်ပြုထားသော HTTP proxy URL အတွက်:
var uri = new Uri(proxyUrl);
var endpoint = new UriBuilder(uri)
{
UserName = "",
Password = ""
};
var proxy = new System.Net.WebProxy(endpoint.Uri);
if (uri.UserInfo.Length > 0)
{
var parts = uri.UserInfo.Split(new[] { ':' }, 2);
var username = Uri.UnescapeDataString(parts[0]);
var password = parts.Length == 2
? Uri.UnescapeDataString(parts[1])
: "";
proxy.Credentials =
new System.Net.NetworkCredential(username, password);
}
proxyUrl သည် ပေးထားသော proxy URL ဖြစ်ပြီး ဝဘ်ဆိုက် URL မဟုတ်ပါ။ Uri သည် ၎င်း၏ authority ကို ခွဲခြမ်းစိတ်ဖြာပြီး UriBuilder သည် WebProxy တွင် သိမ်းဆည်းထားသော အဆုံးမှတ်မှ အသုံးပြုသူအချက်အလက်များကို ဖယ်ရှားသည်။
အစိတ်အပိုင်းများကို ကုဒ်မဖျက်မီ ပထမဆုံး စာလုံးအလိုက် ကော်လွန်တွင် ခွဲပါ။ ဤနည်းဖြင့် အသုံးပြုသူအမည်အတွင်းရှိ ကုဒ်လုပ်ထားသော ကော်လွန်ကို ထိန်းသိမ်းပြီး စကားဝှက်အတွင်းရှိ နောက်ထပ် ကော်လွန်များကို စကားဝှက်ထဲတွင် ထားရှိသည်။ အစိတ်အပိုင်းတစ်ခုစီကို တစ်ကြိမ်သာ ကုဒ်ဖျက်ပါ။ စကားဝှက်ကို Base64 ဖြင့် မကုဒ်လုပ်ပါနှင့်၊ အစား URL escaping ကို အသုံးပြုပါ။
နောက်ဆုံးတွင် handler မှ တောင်းဆိုမှုများ မစတင်မီ proxy ကို ရည်ရွယ်ထားသော HTTP handler သို့ သတ်မှတ်ပါ။ object ကို ဖန်တီးရုံဖြင့် အခြား client ၏ routing မူဝါဒကို မပြောင်းလဲပါ။