Holen Sie sich den URI vom Standard-Web-Proxy

8

Ich schreibe ein Programm, das ohne Proxy und mit Proxy mit Authentifizierung funktionieren soll - automatisch! Es sollte einen WCF-Dienst aufrufen. In diesem Beispiel heißt die Instanz client . Ich benutze auch eine selbst geschriebene Klasse ( proxyHelper ), die die Anmeldeinformationen anfordert.

%Vor%

Ich habe ein Problem mit der ProxyAddress. Wenn ich HttpWebRequest.GetSystemWebProxy() verwende, um den tatsächlich definierten Proxy zu erhalten, sehe ich im Debug-Modus die korrekte Proxy-Adresse, aber es ist eine nicht öffentliche Eigenschaft. Das Setzen von UseDefaultWebProxy auf true funktioniert nicht und wenn ich die Proxy-Adresse fest codiere und das UseDefaultWebProxy auf false setze, funktioniert es einwandfrei. Also ... wie kann ich die Adresse des Standard-Web-Proxy sammeln?

    
Jan 23.11.2010, 09:11
quelle

1 Antwort

15

Der Proxy hat eine Methode namens GetProxy , die verwendet werden kann um den Uri des Proxy zu bekommen.

Hier ist ein Auszug der Beschreibung von MSDN:

  

Die GetProxy-Methode gibt den URI zurück   dass die WebRequest-Instanz verwendet wird   Zugriff auf die Internetressource.

     

GetProxy vergleicht das Ziel mit dem   Inhalt von BypassList, mit dem   IsBypassed Methode. Wenn IsBypassed   gibt true zurück, GetProxy gibt zurück   Ziel und die WebRequest   Instanz verwendet den Proxy nicht   Server.

     

Wenn das Ziel nicht in BypassList ist,   Die WebRequest-Instanz verwendet den Proxy   Server und die Address-Eigenschaft ist   zurückgegeben.

Sie können den folgenden Code verwenden, um die Proxy-Details abzurufen. Beachten Sie, dass die URI, die Sie an die GetProxy-Methode übergeben, wichtig ist, da sie Ihnen nur die Proxy-Anmeldeinformationen zurückgibt, wenn der Proxy für die angegebene Uri nicht umgangen wird.

%Vor%     
Doctor Jones 23.11.2010, 09:52
quelle

Tags und Links