Тайм-аут сеанса в веб-приложении - PullRequest
0 голосов
/ 30 января 2019

В приложении aspx webform.Я установил session.timeout 10 минут.

Но веб-страница отправляет автоматический запрос ajax (с использованием таймера JavaScript) каждые 5 минут

Таким образом, время ожидания сеанса не происходит, даже если пользователь больше не используетсячем 10 минут.

Сеанс пользователя должен истечь через 10 минут, если пользователь остается бездействующим, не рассматривайте автоматические запросы AJAX.Есть ли способ проверить время последнего ручного взаимодействия с пользователем?

Любое решение будет оценено

1 Ответ

0 голосов
/ 30 января 2019

Вот простой скрипт, использующий JQuery, который обрабатывает события мыши и нажатия клавиш.Если время истекает, страница перезагрузится.

Клиентская сторона :

 <script type="text/javascript">
    var idleTime = 0;
    $(document).ready(function () {
        //Increment the idle time counter every minute.
        var idleInterval = setInterval(timerIncrement, 60000); // 1 minute

        //Zero the idle timer on mouse movement.
        $(this).mousemove(function (e) {
            idleTime = 0;
        });
        $(this).keypress(function (e) {
            idleTime = 0;
        });
    });

    function timerIncrement() {
        idleTime = idleTime + 1;
        if (idleTime > 9) { // 10 minutes
           // Here You'd have to have a little ajax call to server to set all session variable value as null.
        }
    }
    function setAllSessionNull(){
//make ajax call to server to set all session variable value as null.
// redirect to login page
}
    </script>

c # код для получения всей сессии и установки значения NULL :

 for (int i = 0; i < Session.Count; i++)
            {
                Session.Remove(Session.Keys[i]); 

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