Вы хотите использовать состояние сеанса для этого. Вы можете установить метку времени в сеансе каждый раз, когда пользователь что-то делает - например, добавляет элемент / и т. Д. Прежде чем открыть какую-либо страницу, вы должны проверить время и посмотреть, если
(DateTime.Now - Session[LastAccessTime]) > new TimeSpan(0, 20, 0)
Если оно больше, показать сообщение о том, что время истекло, иначе продолжить.
На страницах покупок вы можете проверить в течение 20 минут, на страницах оформления заказа проверить в течение 15 минут.
Проверьте этот ответ тоже: Время ожидания сеанса с таймером