Завершить сеанс на MVC

У меня есть этот вопрос, вы, вероятно, знаете ответ... Мое приложение уже работает и работает нормально. Всякий раз, когда пользователь выполняет аутентификацию, приложение обновляет свою модель с помощью LastLoginDate, а когда пользователь выходит из системы, приложение обновляет свою модель с помощью LastLogOutDate. Это отлично работает, пока пользователь продолжает нажимать на ссылку выхода. Однако, если пользователь закрывает окна, значение LastLogOut никогда не обновляется, и происходит то, что администратор видит пользователей в сети, которых нет. То же самое происходит, когда пользователь оставил вкладку открытой во время работы в чем-то другом, и .NET теряет сеанс.

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

Я надеюсь, что вы могли бы помочь мне в этом вопросе,

Спасибо.


person met.lord    schedule 11.02.2011    source источник


Ответы (1)


Вам понадобится отслеживаемый LastActivityTime, который обновляется при любом GET/POST, а также (возможно, настраиваемый) тайм-аут, скажем, 20 минут, который при показе вошедших в систему пользователей будет сравнивать LastActivityTime с DateTime.Now и возвращать только те, которые находятся в пределах окна тайм-аута.

Вы также можете установить LastLogOutDate на LastActivityTime плюс время ожидания при отображении для администратора.

person Oded    schedule 11.02.2011