Изменение истечения на cookie Состояния сеанса ASP.NET

Я использую Состояние сеанса ASP.NET для отслеживания зарегистрированных пользователей на моем сайте.

Однако одна проблема, с которой я сталкиваюсь, состоит в том, которые сеансовыми куки ASP.NET по умолчанию установлены истечь, когда браузер закрывается.

http://ahb.me/43e

Я попытался установить свой собственный cookie asp NET_SessionId и изменить истечение cookie с помощью чего-то подобного следующему коду:

Response.Cookies["ASP.NET_SessionId"].Expires = DateTime.Now.AddMonths(1);

Ни один из этих подходов не работает, они все устанавливают второй cookie с тем же именем.

Существует ли способ изменить истечение сеансовых куки?

6
задан anonymous coward 9 June 2010 в 08:40
поделиться

3 ответа

Я бы предложил вам использовать FormsAuthentication для отслеживания вошедших в систему пользователей. Вы можете использовать постоянный FormsAuthenticationCookie для достижения желаемого.

Или, если вы действительно хотите использовать состояние сессии, попробуйте эту технику.

2
ответ дан 9 December 2019 в 22:29
поделиться

Просто предположение: возможно, редактирование session.configuration внутри web.config может изменить срок действия cookie? Вы можете посмотреть здесь ?

1
ответ дан 9 December 2019 в 22:29
поделиться

Я думаю, что попытки поддерживать сеанс в течение длительного времени - это неправильный подход, который ограничивает вашу масштабируемость. Файл cookie сеанса указывает на конкретный сеанс, который поддерживается IIS на сервере. В общем, вы хотите, чтобы сеанс закрывался после того, как пользователь закрывает свой браузер, чтобы не использовать все доступные серверные ресурсы для неактивных пользователей. Вы хотите, чтобы сеанс для уходящего пользователя был закрыт, а ресурсы стали доступными для нового прибывающего пользователя. Вот почему срок действия cookie сеанса истекает.

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

1
ответ дан 9 December 2019 в 22:29
поделиться
Другие вопросы по тегам:

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