Ab .NET 2.0 sollten Sie dies nicht mehr tun müssen. Wenn Sie die Proxy-Eigenschaft nicht explizit für eine Web-Anforderung festlegen, wird der Wert des statischen WebRequest.DefaultWebProxy verwendet. Wenn Sie den Proxy ändern möchten, der von allen nachfolgenden WebRequests verwendet wird, können Sie diese statische Eigenschaft DefaultWebProxy festlegen.
Das Standardverhalten von WebRequest.DefaultWebProxy besteht darin, die gleichen zugrunde liegenden Einstellungen wie im Internet Explorer zu verwenden.
Wenn Sie Folgendes verwenden wollten unterschiedliche Proxy-Einstellungen auf den aktuellen Benutzer zu übertragen, müssten Sie den Code
WebRequest webRequest = WebRequest.Create("http://stackoverflow.com/");
webRequest.Proxy = new WebProxy("http://proxyserver:80/",true);
ou
WebRequest.DefaultWebProxy = new WebProxy("http://proxyserver:80/",true);
Sie sollten auch bedenken, dass das Objektmodell für Proxys das Konzept beinhaltet, dass der Proxy je nach Zielhostname unterschiedlich sein kann. Dies kann bei der Fehlersuche und der Überprüfung der Eigenschaft webRequest.Proxy für etwas Verwirrung sorgen. Aufruf von
webRequest.Proxy.GetProxy(new Uri("http://google.com.au"))
um die tatsächlichen Details des zu verwendenden Proxyservers zu sehen.
Es scheint eine Debatte darüber zu geben, ob man die webRequest.Proxy
o WebRequest.DefaultWebProxy = null
um die Verwendung eines Proxys zu verhindern. Das scheint bei mir gut zu funktionieren, aber Sie könnten es auch so einstellen new DefaultProxy()
ohne Parameter, um das gewünschte Verhalten zu erreichen. Eine andere Sache, die zu überprüfen ist, ist, dass wenn ein Proxy-Element in der Konfigurationsdatei Ihrer Anwendung vorhanden ist, wird das .NET Framework NICHT verwenden Sie die Proxy-Einstellungen im Internet Explorer.
Der Artikel im MSDN Magazine Entlastung der Benutzer durch automatische Konfiguration in .NET gibt weitere Einzelheiten darüber, was unter der Haube passiert.
1 Stimmen
Siehe wir haben zwei Möglichkeiten, Proxy in .net-Anwendung zu verwenden. Die erste Möglichkeit ist die Verwendung von Proxy-Einstellungen in web.config. Die zweite Möglichkeit ist die Verwendung der webproxy Klasse im Code. In web.config können Sie keine Netzwerk-Anmeldeinformationen (Benutzer und Passwort) verwenden. Aber im Code können Sie Anmeldeinformationen verwenden. Sie können hier mehr über Proxy erfahren - goo.gl/bLDAHp