Перехват времени ожидания сеанса ASP.NET в приложении GeneXus - PullRequest
3 голосов
/ 21 октября 2010

Мне нужно перехватить сеанс ASP.NET в приложении GeneXus X , созданном на C #. Когда пользователь остается в стороне от клавиатуры более чем на N минут, я хотел бы еще раз запросить пользователя / пароль, не теряя изменения данных в веб-форме

1 Ответ

3 голосов
/ 02 декабря 2010

Вам следует подумать о том, чтобы просто увеличить тайм-аут сеанса на сервере, чтобы вам сначала не пришлось решать проблему.

Если это не вариант, вы можете создать пользовательский элемент управления, который периодически проверяет,сеанс активен через ajax, пример с JQuery (не тестировался):

$(function() {
    setInterval(CheckSession, 10000); /*10 seconds*/
});

function CheckSession() {
    $.get("/CheckSession.aspx", function(data) {
        $("body").append("<p>" + data + "<p/>"); /*shows current user*/
        if(data = "")
           $("#loginform").fadein(200);
    });
} 

Где CheckSession - основной / http proc, который делает что-то вроде

&httprespone.addstring(&websession.get('userid'))

И в случаечто это не так, отключите экранные кнопки и как-то покажите форму входа в систему:

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

Альтернативой может быть присоединение кода проверки сеансак кнопке отправки, должно быть достаточно просто в любой среде JavaScript.

...