Cookies Ablauf funktioniert nicht in C #

8

Ich versuche, mit C # 4.0 und diesem Code ein dauerhaftes Cookie zu erstellen:

%Vor%

Leider funktioniert es nicht und der Cookie läuft ab. Wenn ich das Web Developer Plugin in Firefox verwende, um es zu überprüfen, kann ich diese Information sehen:

%Vor%

Der Cookie, den ich mache, ist ein Test, den er gerade dort erstellt hat, niemand anders verwaltet ihn oder bearbeitet ihn, so dass er nicht überschrieben werden kann. Ich habe nichts in webconfig gesetzt, um den Ablauf von Cookies zu setzen (sowieso sollte das das überschreiben) und wenn ich einige Ablaufzeiten für Cookies setze, funktioniert es nicht.

Ich bin jetzt ein wenig verloren, jedes Handbuch, Tutorial, Blog, was ich auch überprüfe sagt, dass Sie nur das Ablaufdatum festlegen müssen, habe ich überprüft, dass es wirklich diesen Wert bei der Erstellung und am Ende von Page_PreRender hat aber es läuft nur mit der Sitzung ab, was immer ich mache.

Irgendwelche Ideen?

Ich benutze Firefox 9.0.1 btw.

Aktualisieren

Wenn ich das Firebug-Plugin in Firefox verwende, um Antwort-Header zu überprüfen, bekomme ich Folgendes:

%Vor%

Und mit Fiddler bekomme ich das:

%Vor%

** Aktualisierung 2 ** Ich überprüfe, dass der Cookie nicht existiert, nur zwischen meinen Firefox-Cookies überprüfend, aber, wenn Sie sehen möchten, wie ich es später im Code bekomme (nicht notwendig, da es sowieso nicht dort ist):

%Vor%     
Ruben.Canton 23.01.2012, 15:00
quelle

3 Antworten

3

Ok, alle zusammen. Es tut mir leid, aber aus irgendeinem Grund hatte ich meine Browser vor einiger Zeit konfiguriert, um Cookies zu löschen, wenn ich Windows geschlossen, also, obwohl Cookies ordnungsgemäß erstellt wurden, legte der Browser sie als Session-Cookies nicht weil sie sondern wegen Browser-Optionen waren.

Tatsächlich, wenn ich Cookies in Firefox verwalten wollte, konnte ich die Option "Sitzungs-Cookie" in einem Cookie deaktivieren und dann war das Ablaufdatum das richtige, aber aus irgendeinem Grund wurde diese Option standardmäßig aktiviert. Ich dachte, dass es vielleicht einen Weg gäbe, um festzulegen, ob ein Cookie Session-Cookie ist oder nicht, oder vielleicht .Net tat etwas, bis ich das erkannte.

Nun, wenn keine Logik zu funktionieren scheint, weißt du, dass das Problem die dümmste Sache ist, die du dir vorstellen kannst ...

Entschuldigung nochmal.

    
Ruben.Canton 24.01.2012, 15:33
quelle
6

Nur um meinen Kommentar zu folgen:

Die Informationen aus den Werkzeugen von fiddler und firefox zeigen, dass Sie die richtigen Informationen zum Erstellen des Cookies senden.

Das führt mich zu der Annahme, dass Sie seine Existenz falsch testen.

Wenn Sie testen, ob ein Cookie an Ihre Anwendung übergeben wurde, sollten Sie den Container Request.Cookies verwenden, um zu sehen, ob er da ist. (Beachten Sie, dass REQUEST nicht RESPONSE ist).

Wenn Sie etwas wie folgt testen:

%Vor%

Dann wird ein neues Cookie im Antwortobjekt erzeugt, das leer ist.

Zusammenfassend: Das Request-Objekt enthält alles, was vom Browser gesendet wird. Das Antwortobjekt ist alles, was Sie an den Browser senden.

    
NotMe 23.01.2012 17:39
quelle
3

Haben Sie versucht, die SetCookie-Funktion anstelle von Hinzufügen zu verwenden?

%Vor%

Habe es so schnell getestet und es funktioniert für mich.

    
Jon 23.01.2012 15:55
quelle

Tags und Links