Question

J'ai créé un HttpCookie afin de partager des données sur un sous-domaine:

HttpCookie cookie = new HttpCookie("sessionGUID");
cookie.Value = value;
cookie.Domain = ".example.com";

Response.Cookies.Set(cookie);

J'ai imprudemment supposé, puisqu'il s'agissait d'un cookie de session (non expiré), qu'il expirerait avec ma session ASP.NET. Bien sûr, pour le navigateur, il s'agit d'un cookie de "session de navigateur" qui n'est pas lié à la session ASP.NET.

Ce que je veux faire, c'est faire expirer ces cookies de "session de navigateur" avec la session ASP.NET.

Je pense que je dois juste définir Expires sur la même valeur que la session ASP.NET. Comment pourrais-je déterminer cela par programmation?

Était-ce utile?

La solution

S'ils ont juste besoin d'être proches, quelque chose comme ceci:

int expirationMinutes = Session.Timeout;
if (System.Web.HttpContext.Current.Response.Cookies["monster"]!=null)
{
    System.Web.HttpContext.Current.Response.Cookies["monster"].Expires =
                                 DateTime.Now.AddMinutes(expirationMinutes);
}

Le minuteur de session réinitialise tout ce que l'utilisateur publie ou obtient. Par conséquent, étant donné que le code est en cours d'exécution sur le serveur, le temps restant sur la session en cours est Session.Timeout, par exemple 20 minutes.

Dans 20 minutes, le cookie ne sera pas accepté et vous devrez en créer un nouveau.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top