2010-12-26 11 views
2

Ich experimentiere mit C#, und im Moment versuche ich eine Webseite zu bekommen, die Cookies benötigt. Da ich keinen Erfolg dabei hatte, schrieb ich diesen kleinen PHP-Skript (direkt von php.net):WebBrowser.Navigate Überladung fügt keine Cookies hinzu

<?php 
    foreach (getallheaders() as $name => $value) { 
     echo "$name: $value\n"; 
    } 
?> 

aber, wenn ich laufe:

this.WBro.Navigate("http://localhost/cookie.php", null,null,"Cookie: foo=bar"); 

die foo Cookie nicht vorhanden ist, und alles, was ich habe, ist eine Seite mit den "üblichen" Kopfzeilen (außer dem Cookie). Hat jemand eine Vorstellung davon, warum das passiert?

Vielen Dank!

Antwort

1

Funktioniert es, wenn Sie nach dem Header eine Environment.NewLine hinzufügen?

+0

wenn dies ist, was Sie nach: this.WBro.Navigate ("http: //localhost/cookie.php", null, null, "Cookie: sid = 1234" + System.Environment.NewLine); nein, es funktioniert nicht – kaharas

+0

Funktioniert es mit anderen, benutzerdefinierten Headern? Wie X-Cookie: was auch immer? – fejesjoco

+0

sollte es ein Kommentar sein –

2

Für zukünftige Referenz: Es gibt keine Möglichkeit, Cookies mit WebBrowser.Navigate zu setzen. Verwenden Sie einfach

[DllImport("wininet.dll", CharSet = CharSet.Auto, SetLastError = true)] 
static extern bool InternetSetCookie(string lpszUrl, string lpszCookieName, string lpszCookieData); 
InternetSetCookie("http://localhost", "foo", "bar"); 
+0

Das ist wahrscheinlich eine falsche Verwendung. Sie sollten InternetSetCookie aufrufen ("http: // localhost", null, "foo = bar"); –

+0

Dies sollte die akzeptierte Antwort sein. –

Verwandte Themen