Okay, hier ist die 411 - Ich habe den folgenden Event-Handler in meiner Global.asax.cs-Datei:
%Vor%Dieser Handler wird während Ajax-Anfragen (als Ergebnis des von mir verwendeten Ajax-Frameworks) sowie zu anderen Zeiten ausgeführt - die Bedingung der if-Anweisung filtert nicht-Ajax-Ereignisse heraus und funktioniert gut (es ist nicht 't relevant hier, so habe ich es aus Gründen der Kürze nicht aufgenommen.)
Es genügt uns zu sagen, dass dies gut funktioniert - der Cookie ist gesetzt, ich kann ihn auf dem Client lesen, und alles ist bis zu diesem Punkt gut.
Nun zu dem Teil, der mich verrückt macht.
Hier ist die JavaScript-Funktion, die ich benutze, um den Cookie zu löschen:
%Vor%Natürlich lösche ich es irgendwann nach dem Setzen des Cookies wie folgt:
%Vor%Nur, das macht die Arbeit nicht; der Cookie existiert noch. Also, weiß jemand warum?
Sie müssen Ihren Cookie im selben Pfad löschen, in dem Sie ihn erstellt haben. Erstellen Sie also Ihr Cookie mit Pfad = / und delute es mit Pfad = / auch ..
Seltsam .. Der Code, den Sie eingefügt haben, ist fast wortwörtlich: Ссылка was gut funktioniert ..
Ich weiß, dass Sie Ajax verwenden, aber haben Sie es schnell versucht es auf den serverseitigen Code zu stossen, um zu sehen, ob das funktioniert ? Dies kann helfen herauszufinden, ob es ein Problem mit dem JS oder etwas anderem ist (z. B. Mystery File Locking auf dem Cookie)?
Ich hatte gerade ein schnelles Google, es sieht so aus, als könnte es Probleme mit den Browsereinstellungen geben. Ich glaube nicht, dass Ihr Problem hier der Code ist, es ist eher etwas anderes. Ich würde vorschlagen, versuchen Sie das oben als PoC und wir können von dort aus bewegen. :)
Ich habe vor einer Woche auf meinem Blog einen Cookie von js gepostet. Dies hat bei allen "A Grade" -Browsern funktioniert.
%Vor%Auch wenn eine Cookie-Domäne während der Erstellung angegeben wurde, habe ich festgestellt, dass Sie auch die Cookie-Domäne angeben müssen, während Sie versuchen, sie zu löschen (ablaufen).
Sind wir sicher, dass es keinen Code gibt, der den Cookie auf HttpOnly setzt (oben fehlt nichts)? Die HttpOnly-Eigenschaft verhindert, dass (moderne) Browser den Cookie ändern. Es würde mich interessieren zu sehen, ob Sie es Server-Seite töten können, wie Rob es vorschlägt.
Tags und Links javascript c# asp.net ajax cookies