Когда вы начинаете новый сеанс браузера и просматриваете свой сайт, классический ASP обнаружит, что нет файла cookie сеанса ASP, и создаст новый сеанс для вас (как вы уже испытали).
Сеансовые куки-файлы просто существуют, они существуют на протяжении всего сеанса. Когда вы закрываете браузер, cookie-файл сеанса будет удален (даже если ваше состояние сеанса на сервере будет сохраняться как потерянный сеанс до тех пор, пока не истечет Session.Timeout - если вы снова не представите тот же cookie-файл сеанса в течение периода Session.Timeout).
Единственный способ продлить срок действия файла cookie сеанса ASP в новых сеансах / экземплярах браузера - изменить время жизни файла cookie с помощью сценария в браузере / клиенте.
Если вы хотите управлять состоянием между событиями, такими как закрытие браузера, вам необходимо внедрить собственный механизм управления состоянием (например, сохранить состояние в базе данных) и использовать обычный файл cookie с большим временем жизни (или с скользящий срок действия, при котором вы увеличиваете время жизни на небольшое количество времени на каждый запрос в сценарии на стороне сервера), чтобы сопоставить состояние с пользователем.
Edit:
В следующей статье есть скрипт для изменения cookie-файла сеанса (прокрутите вниз до срока действия cookie):
Но, как правильно указывает Шобан, существует риск Фиксация сессии (OWASP) . Тем не менее, вы можете пойти каким-то образом, чтобы защитить себя от этого:
Я бы также добавил несколько предостережений: если ваше приложение хранит конфиденциальные данные (кредитные карты, финансовые, медицинские и т. Д.), То я бы предложил не делать этого и согласиться с тем, что вашему пользователю придется снова войти в систему и запустить новый сеанс. Лучше безопасно, чем потом сожалеть.