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 എസ്‌കേപ്പിംഗ് ചെയ്യുക.

അവസാനം, ഹാൻഡ്‌ലർ അഭ്യർത്ഥനകൾ ആരംഭിക്കുന്നതിന് മുമ്പ് proxy ഉദ്ദേശിച്ച HTTP ഹാൻഡ്‌ലറിന് നൽകുക. ഒബ്‌ജക്റ്റ് മാത്രം നിർമ്മിക്കുന്നത് മറ്റൊരു ക്ലയന്റിന്റെ റൂട്ടിംഗ് നയം മാറ്റുന്നില്ല.

അനുബന്ധ ലേഖനങ്ങൾ