Die Übergabe von Benutzername und Passwort an .NET HttpWebRequest über URI funktioniert nicht

8

Ausführen des folgenden Codes:

%Vor%

... und das Überprüfen der Anfrage mit Wireshark zeigt, dass von meinem Client keine Autorisierung versucht wird (die URL ist ein einfacher Dienst, der immer 401 zurückgibt).

Dieser Code sendet nach der ersten Abfrage einen Autorisierungsheader:

%Vor%

Die Verwendung der Klasse System.Uri hat keine Auswirkungen. Warum werden der Benutzername und das Passwort in der URL nicht zur Authentifizierung verwendet?

(Ich bin mir bewusst, diesen Blog-Beitrag beim Übergeben des Autorisierungs-Headers ohne eine anfängliche Herausforderung, aber das ist nicht das Problem zur Hand)

BEARBEITEN Ich sollte hinzufügen, dass es ziemlich einfach ist, diese Einschränkung zu umgehen, zum Beispiel mit diesem Bit Code (URL hinzufügen, entfliehen nach Geschmack), ich bin nur neugierig, warum Sie müssen dies tun:

%Vor%     
friism 09.11.2011, 00:59
quelle

1 Antwort

3

Die Klasse HttpWebRequest verwendet nicht die Anmeldeinformationen in Uri (per dotPeek).

Aber das FtpWebRequest tut, hier ist der relevante Code:

%Vor%

Wie Sie sehen können, hängt es nur an die Anmeldeinformationen an, Sie sollten das stattdessen manuell mit einem analysierten Uri

tun     
Paul Tyng 09.11.2011 01:13
quelle

Tags und Links