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

StackOverflow https://stackoverflow.com/questions/347227

  •  19-08-2019
  •  | 
  •  

Вопрос

Я создал 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. Как бы я определил это программно?

Это было полезно?

Решение

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

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 минут файл cookie не будет принят, и вам придется выпустить новый.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top