Я построил корзину покупок, которая использует состояние сеанса для хранения данных корзины покупок, пока пользователь просматривает магазин.
У меня проблема: если я оставляю окно браузера открытым на долгое время на шаге 1 корзины покупок, а затем нажимаю «перейти к шагу 2», мои действия вызывают ошибку, поскольку действие шага 2 предполагает, что сеанс не истек, а Объект ShopCart находится в правильном состоянии.
Я бы хотел, чтобы этот сценарий был более приятным для моих пользователей, но я думаю, что мне нужно каким-то образом определить, истек ли сеанс, чтобы при следующем запросе я мог перебросить их на Шаг1.
Я нашел следующий код, который утверждает, что решает проблему, но у меня он не работает.
Условие IsNewSession истинно, но условие
if ((null != sessionCookie) && (sessionCookie.IndexOf("ASP.NET_SessionId") >= 0)) {
// handle expired session
}
всегда возвращает false и никогда не обрабатывает недопустимый сеанс. Я смущен.
Возможно ли это в ASP.NET (и MVC)?