2012-08-15 2 views
3

Я осмотрел и нашел, как удалять файлы cookie в клиентском браузере либо с истечением срока действия для файлов cookie, либо с их удалением в браузере, не предоставляя срок действия.ASP.NET Remove Session/Cookies

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

Заранее благодарен!

ответ

4

Возможно ли это?

Нет, это невозможно из коробки. Есть 2 вида печенья:

  1. настойчивые: один с expires набор свойств для данной даты => эти куки хранятся в виде файлов на клиентском браузере и выжить перезагрузку браузера. Он будет отправлен по каждому запросу, который выполняет клиент, до тех пор, пока не будет достигнута дата истечения срока их действия или пока он явно не удалит их.
  2. сеансовое печенье: один без expires свойство устанавливается. Они живут только в памяти текущего браузера, но никогда не истекают (пока браузер не будет закрыт или пока сервер не удалит их явно).

Итак, для вашего сценария вы можете использовать файлы cookie сеанса, включив в значение значение created at. Затем на сервере по каждому запросу вы можете прочитать это значение и сравнить его с текущей датой. Если желаемый период истек, просто истекает срок действия файла cookie, чтобы он больше не отправлялся при последующих запросах. Кстати, этот метод используется в модуле аутентификации форм в ASP.NET. Вы указываете тайм-аут в своем web.config и решаете, хотите ли вы использовать скользящее окончание или нет, а затем по каждому запросу сервер проверяет, достигнут ли тайм-аут, чтобы принять решение о недействительности файла cookie или его возобновлении (если скользящий истечение срока действия).

Смежные вопросы