2011-04-25 20 views
6

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

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

Спасибо.

ответ

4

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

12

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

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

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

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