Cookie создаются в ASP.NET, связанном тайм-аутами сессии?

Если я создаю cookie (в ASP.NET) как это

cookie = new HttpCookie("MyCookie");
cookie["foo"] = "bar";
Response.Cookies.Add(cookie);

значение будет пусто/пустым, если сессия истечет?

Моя цель состоит в том, чтобы сохранить данные в cookie только, в то время как браузер остается открытым, даже если пользователь активно не взаимодействует с приложением.

1
задан Andy Evans 23 July 2010 в 13:53
поделиться

1 ответ

Нет, он не будет очищен во время сеанса, он истечет, когда вы установите его или когда закроет браузер:)

По умолчанию cookie передается клиенту без установленного срока действия. таким образом (без информации об истечении срока действия). Опять же по умолчанию , это означает, что браузер должен «зависать» от cookie, но не сохранять его на диске, так что это не 1: 1 с истечением сеанса, а скорее всякий раз, когда вы закрываете браузер.

Примеры:

  • Если я захожу на ваш сайт, простаиваю в течение часа, даже если срок моего сеанса истек, я все равно отправлю cookie при следующем запросе. Если я закрою браузер (все вкладки, в зависимости от браузера) и попробую снова, я не буду отправлять cookie.
  • Если бы я посетил ваш сайт, получил cookie, закрыл свой браузер, открыл другой (до тайм-аута сеанса), у меня все еще был бы тот же сеанс , но не этот файл cookie.

Возможно, вам было бы лучше хранить эти данные в сеансе ?


Срок действия сеанса истекает из-за файла cookie (cookie сеанса), у которого на сервере больше нет , означающего . Когда сеанс истекает, даже если файл cookie находится на клиенте, сервер получает файл cookie и идет «хорошо ... не может найти сеанс для этого».

При этом вы можете постоянно отправлять cookie, имея тот же срок действия, что и сеанс (по умолчанию 20 минут с момента запроса). Или вы можете включить идентификатор сеанса в файл cookie, и, когда сервер получит файл cookie, игнорировать значение файла cookie, если идентификатор сеанса не совпадает.

2
ответ дан 2 September 2019 в 22:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: