Если я создаю cookie (в ASP.NET) как это
cookie = new HttpCookie("MyCookie");
cookie["foo"] = "bar";
Response.Cookies.Add(cookie);
значение будет пусто/пустым, если сессия истечет?
Моя цель состоит в том, чтобы сохранить данные в cookie только, в то время как браузер остается открытым, даже если пользователь активно не взаимодействует с приложением.
Нет, он не будет очищен во время сеанса, он истечет, когда вы установите его или когда закроет браузер:)
По умолчанию cookie передается клиенту без установленного срока действия. таким образом (без информации об истечении срока действия). Опять же по умолчанию , это означает, что браузер должен «зависать» от cookie, но не сохранять его на диске, так что это не 1: 1 с истечением сеанса, а скорее всякий раз, когда вы закрываете браузер.
Примеры:
Возможно, вам было бы лучше хранить эти данные в сеансе ?
Срок действия сеанса истекает из-за файла cookie (cookie сеанса), у которого на сервере больше нет , означающего . Когда сеанс истекает, даже если файл cookie находится на клиенте, сервер получает файл cookie и идет «хорошо ... не может найти сеанс для этого».
При этом вы можете постоянно отправлять cookie, имея тот же срок действия, что и сеанс (по умолчанию 20 минут с момента запроса). Или вы можете включить идентификатор сеанса в файл cookie, и, когда сервер получит файл cookie, игнорировать значение файла cookie, если идентификатор сеанса не совпадает.