.NET IWebProxy: izbegnite pretvaranje sistemskih proksija u WebProxy
Obrađujte sistemski proksi vraćen kao IWebProxy bez pretpostavke da je njegova konkretna klasa WebProxy.
IWebProxy policy = WebRequest.GetSystemWebProxy();
request.Proxy = policy;
Zadržite vraćeni objekat kao IWebProxy. Ovaj isečak se odnosi na postojeći kod zasnovan na WebRequest-u, a ne na preporuku da taj zastareli API koristite u novoj aplikaciji.
WebProxy implementira interfejs, ali ne nasleđuje svaki objekat koji implementira interfejs od WebProxy-ja. Sistemski omotač stoga može odbiti pretvaranje pre nego što se dogodi bilo kakav mrežni zahtev. Privatno ime klase .NET Framework-a kao što je WebProxyWrapperOpaque detalj je implementacije, a ne problem sa krajnjom tačkom proksija ili nalogom.
Za odluku o ruti pozovite IsBypassed(destination) i GetProxy(destination) sa stvarnim URI-jem odredišta. Zaobilaženje može vratiti samo to odredište, a politika zasnovana na PAC-u može odabrati drugu rutu za drugi host.
Za proveru identiteta IWebProxy već izlaže Credentials. Koristite podržani nalog i metodu bez pretvaranja da biste došli do svojstva.
Izdvajanje jednog URI-ja za izgradnju zamenskog WebProxy-ja odbacuje ponašanje izvorne politike po odredištu. To činite samo kada je fiksna krajnja tačka nameravana konfiguracija aplikacije, a ne kao zaobilazno rešenje za grešku tipa.