Как сделать так, чтобы срок действия файла cookie сеанса ASP.NET заканчивался с помощью HttpSession ASP.NET? - PullRequest
4 голосов
/ 07 декабря 2008

Я создал HttpCookie для совместного использования данных на поддомене:

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

Response.Cookies.Set(cookie);

Я небрежно предположил, так как это файл cookie сеанса (без срока действия), который истекает вместе с моим сеансом ASP.NET. Конечно, для браузера это файл cookie «сеанса браузера», который не связан с сеансом ASP.NET.

Что я хочу сделать, так это прекратить использование файлов cookie «сеанса браузера» вместе с сеансом ASP.NET.

Я думаю, мне просто нужно установить Expires на то же значение, что и сеанс ASP.NET. Как бы я определил это программно?

1 Ответ

1 голос
/ 07 декабря 2008

Если они просто должны быть рядом, то примерно так:

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);
}

Таймер сеанса сбрасывает все, что пользователь отправляет или получает, поэтому, поскольку код выполняется на сервере прямо сейчас, оставшееся время в текущем сеансе - Session.Timeout, скажем, 20 минут.

Через 20 минут куки не будут приняты, и вам придется выпустить новый.

...