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 غا تەيىنلەڭ. پەقەت ئوبيېكتنى قۇرۇش باشقا بىر خېرىدارنىڭ يول باشلاش سىياسىتىنى ئۆزگەرتمەيدۇ.