asp.net тайм-аут сеанса mvc - PullRequest
6 голосов
/ 25 апреля 2011

Как реализовать функцию тайм-аута сеанса для приложения asp.net mvc? Я хочу, чтобы пользователь автоматически выходил из системы при обнаружении неактивности в течение заданного периода времени.

Я могу реализовать ActionFilterAttribute и применять к каждому методу, но это не приведет к автоматическому выходу пользователя из системы. Он выйдет только тогда, когда пользователь попытался вызвать метод для этого действия.

Спасибо.

Ответы [ 2 ]

12 голосов
/ 25 апреля 2011

Вы должны иметь возможность управлять этим из web.config:

<system.web>
    <sessionState timeout="x"/> 
    ...
</system.web>

Я не эксперт MVC, но изменение в этом поведении в ASP.NET - это не то, что яd ожидайте.

Это также можно настроить с помощью приложения управления IIS;Не уверен, какую версию IIS вы используете, но эта статья Technet описывает , что должно быть легко следовать даже в более старых (до IIS7) версиях.Обратите внимание, что за кулисами этот метод по-прежнему управляет настройками в файле web.config, поэтому, если он контролируется версией, я бы не рекомендовал изменять его таким образом.

4 голосов
/ 25 апреля 2011

Это так, потому что сеанс поддерживается на стороне сервера.Если вы хотите, чтобы свободная страница в браузере пользователя автоматически выходила из системы, вы должны написать для нее некоторый javascript.Вы можете использовать ajax-запрос, чтобы проверить, истек ли сеанс или нет, и в зависимости от результата вы можете перенаправить пользователя на индекс (логин или любая другая страница, не требующая аутентификации)

...