407-Authentifizierung erforderlich - keine Herausforderung geschickt

Update:

Wenn Sie gerade erst angekommen in dieser Frage, die Allgemeine Kernaussage ist, dass ich versuche, mich ein HttpWebRequest über einen proxy, und ich bin immer ein 407 von unserer seltsamen proxy-server. IE,Firefox,Chrome alle verwalten die Aushandlung der proxy-erfolgreich, wie die Adobe-Air-Anwendungen. Es kann wichtig sein, dass der Google Chrome web-installer nicht wirklich und wir haben die Verwendung einer offline-installer.

Dank an Ian ' s link habe ich es immer durch auf die nächste Stufe. Es ist jetzt das senden eines token zurück an den proxy, allerdings die 3. Stufe ist nicht immer durch, so dass die Anfrage mit dem Nutzernamen/Passwort-hash wird nicht gesendet .NET und somit keine HTML zurückgegeben wird.

Ich bin mit:

  • IE6 user-agent
  • Windows 7
  • Scansafe proxy
  • .NET 3.5

Hier ist der neueste code, entspricht die Protokolle unter:

HttpWebRequest request = HttpWebRequest.Create("http://www.yahoo.com") as HttpWebRequest;
IWebProxy proxy = request.Proxy;
//Print the Proxy Url to the console.
if (proxy != null)
{
    //Use the default credentials of the logged on user.
    proxy.Credentials = CredentialCache.DefaultCredentials;
}
request.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)";
request.Accept = "*/*";

HttpWebResponse response = request.GetResponse() as HttpWebResponse;
Stream stream = response.GetResponseStream();

Ausnahme

WebException (407) Authentication Required.

Der proxy verwendet wird

Der proxy-client ist ein Scansafe hardware in unseren server-Raum, der (nach der Authentifizierung mit NTLM) leitet dann Ihre HTTP-Datenverkehr zu seinen Servern zu filtern Sie den Datenverkehr.

System.Net tracing-Ausgabe

IE erfolgreich Verhandlungen über den proxy

Die Lösung

Ich habe nicht wirklich eine Lösung gefunden aber Dank Feroze und Eric habe ich einen workaround gefunden und entdeckt, dass der eigentliche proxy (und nicht deren Einstellungen) ist das Hauptproblem. Es kann sein, ein obskures Problem mit 3 Variablen: .NET HttpWebRequest-Implementierung, Windows-7 und natürlich der Scansafe-hardware-client, der sitzt in unserem Schrank, aber ohne ein MSDN-support-Anfrage werde ich nicht herausfinden.

Schreibe einen Kommentar