WebProxy-ийн URI байгуулагч зөвхөн төгсгөлийн цэгийг сонгоно; тэр URI-ийн хэрэглэгчийн мэдээллээр Credentials-ыг дүүргэхгүй. Аппликешн баталгаажуулсан HTTP прокси 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 нь өгөгдсөн прокси URL бөгөөд вэбсайтын URL биш. Uri түүний authority-г задлан шинжилж, UriBuilder хэрэглэгчийн мэдээллийг WebProxy-д хадгалагдсан төгсгөлийн цэгээс хасна.

Бүрэлдэхүүн хэсгүүдийг декодлоос өмнө эхний шууд хоёр цэг дээр хуваана. Ингэснээр хэрэглэгчийн нэр дэх кодлогдсон хоёр цэг хадгалагдаж, нууц үгийн нэмэлт хоёр цэгүүд нууц үгэнд үлдэнэ. Бүрэлдэхүүн хэсэг бүрийг нэг удаа декодлоорой; нууц үгийг Base64-ээр кодлож болохгүй, харин URL escaping ашиглана уу.

Эцэст нь, боловсруулагч хүсэлтүүдийг эхлүүлэхээс өмнө proxy-г зориулсан HTTP боловсруулагчид онооно уу. Зөвхөн объектыг үүсгэх нь өөр клиентийн чиглүүлэлтийн бодлогыг өөрчлөхгүй.

Холбоотой нийтлэлүүд