De UserInfo fan in proxy-URL is net WebProxy.Credentials
Helje en dekodearje brûkersynformaasje út in HTTP-proxy-URI foar't de NetworkCredential makke wurdt.
De URI-konstruktor fan WebProxy kiest in einpunt; hy follet Credentials net mei de brûkersynformaasje fan dy URI. Foar in troch de applikaasje falidearre 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 is de oanlevere proxy-URL, net de website-URL. Uri parset de authority, wylst UriBuilder de brûkersynformaasje fuorthellet út it einpunt dat yn WebProxy bewarre wurdt.
Diel by de earste letterlike dûbele punt foar't de komponinten dekodearre wurde. Dat bewarret in kodearre dûbele punt yn 'e brûkersnamme en hâldt ekstra wachtwurd-dûbele punten yn it wachtwurd. Dekodearje elk komponint ien kear; Base64-kodearje it wachtwurd net as ferfanging foar URL-escaping.
Wijs proxy úteinlik ta oan de bedoelde HTTP-handler foar't dy handler oanfragen begjint. It allinnich meitsjen fan it objekt feroaret it routingbelied fan in oare klant net.