Frage

Ich will mein Plätzchen verschwinden, wenn der Benutzer ihre brower-- schließt habe ich bereits einige vielversprechende suchen Eigenschaften festgelegt, aber meine Cookies Pop zurück, auch zu leben, nachdem das gesamte Browserfenster zu schließen.

HttpCookie cookie = new HttpCookie("mycookie", "abc");
cookie.HttpOnly = true; //Seems to only affect script access
cookie.Secure = true; //Seems to affect only https transport

Was Eigenschaft oder Methodenaufruf bin ich dabei ein im Speicher Cookie zu erreichen?

War es hilfreich?

Lösung

Diese Frage wurde online veröffentlicht 1000 mal. Der beste Weg, nicht-persistente Cookies zu behandeln Timeout mit dem Browser geöffnet ist ein Schlüsselwert für Timeout hinzufügen. Der folgende Code für ein Protokoll in Benutzer-ID-Schlüsselwert und Verschlüsselung (nicht enthalten) Sicherheit für Browser-Kompatibilität verwendet wird. Ich habe nicht die Formularauthentifizierung verwenden.

HttpCookie cookie = new HttpCookie(name);
cookie.Values["key1"] = value;
cookie.Values["key2"] = DateTime.Now.AddMinutes(70).ToString(); 
                             //timeout 70 minutes with browser open
cookie.Expires = DateTime.MinValue;
cookie.Domain = ConfigurationManager.AppSettings["website_domain"];
System.Web.HttpContext.Current.Response.Cookies.Add(cookie);

Bei der Überprüfung des Cookie Schlüsselwert verwenden:

try
{

DateTime dateExpireDateTime;
dateExpireDateTime = DateTime.Parse(HttpContext.Current.Request.Cookies[name]["key2"]);

if (DateTime.Now > dateExpireDateTime)
{
//cookie key value timeout code
}
else
{
//reset cookie
}

catch
{
//clear cookie and redirect to log in page
}

Ich habe Kompatibilitätsprobleme gefunden Formularauthentifizierung und Google Chrome verwenden.

Andere Tipps

Cookies ohne Verfall explizit festgelegt wird weggehen automatisch, sobald die Browser-Sitzung vorbei ist.

Nun, „browsing Sitzung“ bedeutet verschiedene Dinge für verschiedene Browser. Bei einigen Browsern bedeutet es, dass jede Instanz des Browsers geschlossen ist. Für manche ist es nur bedeutet, dass die entsprechenden Registerkarten oder Original-Browser geschlossen wird.

In Ihrem Test stellen Sie sicher, schließen Sie jede Instanz des Browsers, bevor sie für den Cookie zu suchen wieder zu öffnen. Wenn Sie weiterhin Probleme haben, schreiben Sie den Browser und die Revision.

cookie.Expires = DateTime.MinValue;

Dieses Cookie verfällt, sobald der Browser geschlossen wird.

Wenn Sie das tun keinem Satz die Cookie.Expires Eigenschaft des Cookie gesetzt wird am Ende der Browser-Session abläuft.

Cookie wird nicht auf Browser schließen zerstören, wenn Genommen von hier

 HttpCookie cookie = new HttpCookie(name);
 cookie.Value = value;
 cookie.Expires = Convert.ToDateTime(“12/12/2008″);  //*difference is here*//
 Response.Cookies.Add(cookie);}

Cookie auf Browser schließen verloren, wenn

     HttpCookie cookie = new HttpCookie(name);
     cookie.Value = value;
     Response.Cookies.Add(cookie);}

Werfen Sie einen Blick auf die ASP.NET Session Variable. Dies hängt von Ihrem Browser anhalten abhängig und kann so eingestellt werden, dass sie „cookieless“ oder mit einem harten Timeout.

http://msdn.microsoft.com/ en-us / library / h6bb9cz9% 28VS.71% 29.aspx

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top