2017-06-07 5 views
2

Dies ist nicht das gleiche wie an anderer Stelle beantwortet (afaik), ich meine Antwort für meine eigene zukünftige Verwendung zu dokumentieren, aber ich würde auch zu wissen, mehrasp.net, Löschen eines Cookies

mich interessieren habe wie so ein Cookie auf dem Client in Javascript erstellt

document.cookie = "Navigating=true"; 

und ich habe versucht, es auf dem Server zu entfernen, indem das Ablaufdatum mit

Einstellung
string cookieName = "Navigating";    
Response.Cookies.Remove(cookieName); 

HttpCookie myCookie = new HttpCookie(cookieName); 
myCookie.Expires = DateTime.Now.AddDays(-2); 
Response.Cookies.Add(myCookie); 

es ist nicht, hier funktioniert ist die Netzwerkverfolgung

enter image description here

Hinweis der Name falsch ist, es ist cookie11 (ich die anderen Cookies aus dem Screenshot entfernt haben, war es der 11. Cookie)

So, jetzt ich den Wert des Cookies gesetzt werden etwas

myCookie.Value = "true"; 

und versuchen sie es erneut, es immer noch nicht funktioniert, Screenshot 2 enter image description here

Der Schlüssel ist nun r ight aber der Weg ist immer noch falsch, so schließlich

 if (Request.Cookies[cookieName] != null) 
     { 
      //Response.Cookies.Remove(cookieName); 

      HttpCookie myCookie = new HttpCookie(cookieName); 
      myCookie.Expires = DateTime.Now.AddDays(-2); 
      myCookie.Value = "true"; 
      myCookie.Path = ""; 
      Response.Cookies.Add(myCookie); 
     } 

und jetzt der Server entfernt das Cookie

enter image description here

Das funktioniert richtig, so ist es keine Frage, aber ich würde daran interessiert zu wissen warum der Javascript-Cookie keinen Pfad hat, aber der asp.net-Standard standardmäßig ist

+0

Für meine eigene Referenz. Ich habe auch versucht, ein Cookie im onclick eines Hyperlinks zu erstellen, asp.net konnte es nicht sehen. Als ich einen Pfad von '/' hinzugefügt habe, ist es passiert. Zuvor erstellte ich den Cookie über einen Klick auf die Schaltfläche, gefolgt von einem Reload der Seite – tony

Antwort

1

Javascript-Cookies sind standardmäßig ohne Pfad. Wie Sie geschrieben haben, kann dies bei der Verwendung von ASP.NET mit Javascript beim Umgang mit Cookies zu Unstimmigkeiten führen. Standardmäßig legt ASP.NET den Cookie-Pfad als / (Root) fest. Um vollständige Kompatibilität zu gewährleisten, können Sie beim Erstellen von Cookies über Javascript einen Pfad festlegen:

+0

Bit mehr Informationen, um Menschen zu googeln zu retten, warum sollte ich einen Pfad festlegen? – tony

+0

Hi @tony, ich habe meine Antwort ausgearbeitet. Hoffe es macht die Dinge klarer. –

+0

Ich dachte mehr von so etwas, aber das wird https://stackoverflow.com/questions/576535/cookie-path-and-its-accessibility-to-subfolder-pages tun – tony