Frage

Ich versuche, hier bei einer Website mit CookieAwareClient (Code zu protokollieren: C # WebClient Melden Sie sich an Website ). Wenn ich auf der Website einloggen in meinem Web-Browser, erhalte ich etwa 10 Cookies. Wenn ich deaktivieren Sie JavaScript und versuchen, sich anzumelden, erhalte ich 5 (ACTIVETAB, id, MCIM, PHPSESSID, Benutzername). Aber wenn ich versuche, bei der Verwendung der CookieAwareClient die einzige Cookie loggt gespeichert werden, ist PHPSESSID.

Was ist der Grund sein könnte, die, dass die andere Cookies nicht gespeichert werden? Ich weiß, das WebClient JavaScript nicht ausführen, aber die drei anderen Cookies, die erzeugt werden, wenn JavaScript deaktiviert ist, werden auch nicht aufbewahrt werden.

War es hilfreich?

Lösung

Als erstes wird eine offensichtliche Frage: bevor Sie Skript in Ihrem Browser deaktiviert und versucht, sich anzumelden, haben Sie zuerst Ihre Cookies löschen? Wenn nicht, Cookies und versuchen Sie es erneut.

Angenommen, Sie klare Cookies zuerst tat und bekam noch 5 neue Cookies nach einem No-Script Login, dann an den fehlenden Cookie Namen suchen Ich denke, würde, dass Ihr CookieAwareClient nicht wirklich erfolgreich in der Benutzer anmeldet. Das Fehlen einer „username“ Cookie ist, was ich erwarten würde, wenn die Login nicht erfolgreich ist. Wenn Sie an der HTML aussehen, indem Sie Ihre Login-Anfrage zurück, sieht es aus wie eine erfolgreiche Anmeldung? Oder ist es eine Art von Fehler zurückgegeben?

Wenn der zurückgegebene HTML eine erfolgreiche Anmeldung ist, dann ist die nächste mögliche Schuldige ich würde aussehen würde zusätzliche Anfragen durch den Browser ausgeführt wird, aber nicht von Ihrem Code ausgeführt. Zum Beispiel könnte die Login-Seite ein META REFRESH haben, die auf eine andere Seite umgeleitet (die ein Cookie gesetzt). Oder die Login-Seite enthält einen IFRAME, IMG, SCRIPT usw., die wiederum ein Cookie gesetzt. Zur Diagnose Verwenden Sie hierzu Fiddler, Firebug oder ein ähnliches Werkzeug, um zu sehen, was bestimmte HTTP-Anforderungen von Ihrem Browser als Teil des Login-Prozess ausgeführt werden. Stellen Sie sicher, dass der POST auf die Login-Seite ist es, all Cookie-Einstellung zu tun, und wenn nicht, dann werden Sie brauchen, um zusätzliche Anforderungen an Ihren Code hinzufügen, nach dem ersten Login.

Wenn es sich herausstellt, gibt es nur eine HTTP-Anforderung Einstellung Cookies, dann ist das Problem likley die HTTP-Header oder POST-Daten zu sein, dass der Code sendet (oder nicht senden) an den Server. Der Browser sendet wahrscheinlich unterschiedliche Kopf- oder POST-Daten. Diagnostizieren dies erfordert auch Firebug, Fiddler oder ein ähnliches Werkzeug, um die HTTP-Header und POST-Daten zu vergleichen, dass ein Browser vs. sendet, was Ihr Code sendet.

Wenn keine dieser Vorschläge Arbeit, einen Kommentar und wir können iterieren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top