6
votes

Comment créer une cookie http non persistante (en mémoire) dans C #?

Je veux que mon cookie puisse disparaître lorsque l'utilisateur ferme leur courroiement ... J'ai déjà défini des propriétés prometteuses à la recherche, mais mes cookies reviennent à vivre même après la fermeture du navigateur entier.

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


0 commentaires

6 Réponses :


1
votes

Vérifiez la section ASP.NET SESSION VARIABLE. Cela persistera en fonction de votre navigateur et peut être défini pour être "COOKIELESS" ou avec un délai difficile.

http://msdn.microsoft.com/ EN-US / Bibliothèque / H6BB9CZ9% 28VS.71% 29.aspx


1 commentaires

Ce n'est pas vraiment lié à ma question. Imaginez si la session était désactivée et je voulais toujours créer un cookie http qui disparaît lorsque le navigateur est fermé / n'est pas écrit sur le disque, etc. Je pense que certaines des autres réponses sont sur la bonne voie cependant.



7
votes
cookie.Expires = DateTime.MinValue;
this cookie will expire, as soon as the browser is closed.

0 commentaires

7
votes

Les cookies sans expiration explicitement définis disparaîtront automatiquement une fois la session de navigation terminée.

Maintenant, "Session de navigation" signifie différentes choses à différents navigateurs. Pour certains navigateurs, cela signifie que chaque instance du navigateur est fermée. Pour certains, cela signifie simplement que les onglets pertinents ou le navigateur d'origine sont fermés.

Dans vos tests, assurez-vous de fermer chaque instance du navigateur avant de rouvrir le cookie. Si vous continuez à avoir des problèmes poster le nom du navigateur et la révision.


0 commentaires

4
votes

Si vous ne définissez pas la propriété Cookie.Expires, le cookie sera configuré pour expirer à la fin de la session du navigateur.


0 commentaires

1
votes

Le meilleur moyen de gérer les cookies non persistants Le délai d'attente avec le navigateur OUVERT ajoute une valeur clé pour le délai d'attente. Le code ci-dessous est utilisé pour une connexion de clé d'identification de l'utilisateur et de la sécurité du cryptage (non incluse) de la compatibilité du navigateur. Je n'utilise pas l'authentification des formulaires.

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
}


0 commentaires

2
votes

cookie ne sera pas détruire sur le navigateur fermer si strong> prise d'ici xxx pré>

Cookie sera perdue sur le navigateur fermer si strong> p>

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


1 commentaires

Pas complètement vrai, encore une fois le navigateur basé. Souhaitez que les navigateurs se réunissent et acceptent de "quand une session de navigateur se termine".