динамическое время ожидания сеанса - PullRequest
0 голосов
/ 21 сентября 2011

Могу ли я динамически изменить время ожидания сеанса?Время ожидания должно быть установлено в соответствии с ролью пользователя.Я пытался использовать configure :: write для динамического изменения времени ожидания, но оно не работает.Похоже, что для того, чтобы истекло время нового сеанса, вы должны сбросить сеанс, но сброс сеанса приведет к потере информации для входа в систему.

Ответы [ 3 ]

0 голосов
/ 26 сентября 2011

Вместо того, чтобы изменять время ожидания сеанса, рассматривали ли вы использование переменной в сеансе для хранения даты / времени последней загрузки страницы, чтобы вы могли проверить ее при следующей загрузке страницы?

Вы можете добавить некоторый код в метод beforeFilter () в AppController, чтобы вычислить количество времени, прошедшего между последней загрузкой страницы (сохраненной в сеансе) и сейчас, и если это больше, чем продолжительность сеанса для указанной пользователем роли уничтожить сессию. Если нет, сохраните текущую дату / время в сеансе, чтобы их можно было использовать в следующий раз.

0 голосов
/ 21 марта 2012

Я думаю, что после проверки членства в роли вы получите что-то вроде следующего:

HttpContext.Current.Session.Timeout = 1200;
0 голосов
/ 21 сентября 2011

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

Но, возможно, более простым решением было бычтобы использовать javascript, вы можете установить значение тайм-аута и, когда он закончится, отправить запрос ajax, выводящий пользователя из системы.Это, очевидно, не сработает, если пользователь отключит JavaScript, но это зависит от того, насколько вы хотите, чтобы это было.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...