Laden...

[erledigt] HttpWebRequest Cookie von POST Request nicht erhalten

Erstellt von iSliver vor 11 Jahren Letzter Beitrag vor 11 Jahren 1.094 Views
I
iSliver Themenstarter:in
57 Beiträge seit 2011
vor 11 Jahren
[erledigt] HttpWebRequest Cookie von POST Request nicht erhalten

Hi um es kurz zu halten ich will mich auf einer Website einloggen.
Dazu habe ich mit Live HTTP Headers und Fiddler mal mitgeschnitten was gesendet wird bei einem korrekten Login.

Die wichtigen Sachen sehen dann so aus :

POST
>
HTTP/1.1
Host:
>

User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:15.0) Gecko/20100101 Firefox/15.0.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8
Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
DNT: 1
Connection: keep-alive
Referer:
>

Content-Type: application/x-www-form-urlencoded
Content-Length: 24

password=************

Dann bekomme ich diese Response :

HTTP/1.1 302 Found
Date: Thu, 27 Sep 2012 12:26:24 GMT
Server: Apache/2.2.16
Set-Cookie: ZYCOOKIE=df7c62fe219ed66258fcacbda9b9afe9; expires=Thu, 27-Sep-2012 12:41:25 GMT; path=/; domain=.
>

Location: /admin/index.php
Vary: Accept-Encoding
Content-Encoding: gzip
Content-Length: 853
Connection: close
Content-Type: text/html; charset=utf-8

Wenn ich das jetzt Programmatisch mache mithilfe eines HTTPWebRequest mit folgendem code mache bekomme ich leider aber keinen Cookie zurück


CookieContainer cookieContainer = new CookieContainer();
            string html;
            string loginData = "password=" + pw;

            HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(url);
            req.CookieContainer = cookieContainer;
            req.CachePolicy = WebRequest.DefaultCachePolicy;
            
            req.Method = "POST";
            req.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
            req.Referer = url;
            req.UserAgent = @"Mozilla/5.0 (Windows NT 6.1; rv:15.0) Gecko/20120716 Firefox/15.0.1";
            req.KeepAlive = true ;
            req.Expect = "";
            req.ContentType = "application/x-www-form-urlencoded";
            ASCIIEncoding encoding = new ASCIIEncoding();
            byte[] loginDataBytes = encoding.GetBytes(loginData);
            req.ContentLength = loginDataBytes.Length;
            Stream stream = req.GetRequestStream();
            stream.Write(loginDataBytes, 0, loginDataBytes.Length);
          
            stream.Close();
            
            
            HttpWebResponse res = (HttpWebResponse)req.GetResponse();
            string testcookieHeader = res.Headers["Set-cookie"];

Wenn ich das ganze aber im Fiddler ansehe habe ich angeblich im Response Header meines Post requests meinen cookie bekommen der sieht dann angeblich so aus :

HTTP/1.1 302 Found
Date: Thu, 27 Sep 2012 12:27:01 GMT
Server: Apache/2.2.16
Set-Cookie: ZYCOOKIE=e3ef9cec1dd9b82079b821731b0e518a; expires=Thu, 27-Sep-2012 12:42:01 GMT; path=/; domain=.
>

Location: /admin/
Vary: Accept-Encoding
Content-Length: 2081
Connection: close
Content-Type: text/html; charset=utf-8

Jetzt weiß ich nicht was ich falsch mache, dass ich keinen Cookie programmatisch sehen kann ...
Denn in meinem Request Response sehe ich nur :
Date
Server
Location
Vary
Content-Length
Connection
Content-Type

Wäre für Hilfestellungen und konkrete Beispiele sehr dankbar 😃

mfg

16.835 Beiträge seit 2008
vor 11 Jahren

Das Thema Cookie und alle Fehlerquellen wurde im Forum schon hunderte Male besprochen und gelöst.
Bitte verwende die Forensuche und verlinke die passenden Treffer hier.

Vielen Dank.

PS: ich hoffe nicht, dass Du mit Deinem Vorgehen irgendwas illegales versuchst.
Wenn ich nach ZYCOOKIE google zeigt sich zum Beispiel Steam, die das Verwenden von Automatismen Global untersagen.

I
iSliver Themenstarter:in
57 Beiträge seit 2011
vor 11 Jahren

Also was ich nicht besprechen möchte sind sachen wie hier :
HttpRequest mit Post liefert anderen Response als im Browser

Hab mich hier auch schon durchgewühlt in der Suche.
Ich hab vermutlich kein Problem einen bestehenden Cookie von der Anmeldung weiterzureichen.
Das Problem liegt darin das ich programmatisch nicht auf den cookie zugreifen kann bzw ihn nicht sehe.
Hab auch schon diverse Lösungsmöglichkeiten aus dem Forum probiert.
Auto Redirect auf false gesetzt, vorher einen Get REquest gemacht etc
Ich bekomm nur beim Post meinen cookie der dann bei allen Weiteren Requests verwendet wird.
Aber diesen bekomme ich programmatisch nicht.
Dazu habe ich hier auch keine Lösung in der Suche gefunden.
Falls doch sowas hier existiert lasse ich mich gerne davon überzeugen.

ZYCookie ist anonymisiert worden von mir und zufällig genauso wie von einem öffentlichen Anbieter.
Hätte auch ZZZZZZCookie schreiben können war mir aber nicht wichtig im Moment meines Posts.

So, dieser Thread war mal überflüssig meinerseits, das Problem bestand nicht in meinem Code, habe gerade mit dem Admin der Seite gesprochen und da stellte sich heraus das in dem Admin Panel nur Safari zugelassen ist, nach einem Anpassen des User Agents passt alels wieder 😃.
Thread kann auch gerne gelöscht werden.