Как принудительно выполнить новый вход в систему, если сеанс сервера заканчивается?

Я разрабатываю «онлайн» приложения для смарт-устройств в GeneXus. Когда пользователь на некоторое время перестает использовать приложение, сеанс удаленного сервера автоматически завершается. Поскольку я использую много переменных веб-сеанса, если пользователь пытается продолжить использование приложения, оно перестает отвечать на запросы. Я думаю о том, как запретить пользователю продолжать использовать приложение, если удаленный сеанс завершится. Я хотел бы заставить его выполнить новую процедуру входа в систему (я не использую GAM).

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


person Jaime    schedule 19.08.2014    source источник
comment
Даже если я создам процедуру для тестирования веб-сеанса, я никогда не смогу взаимодействовать с пользователем с помощью сообщения, верно?   -  person Jaime    schedule 20.08.2014
comment
Я попытался протестировать веб-сессию в событии Refresh, но оно отключило взаимодействие с пользователем (например, сообщение «Пожалуйста, войдите снова»). Я честно не знаю, как этого добиться...   -  person Jaime    schedule 20.08.2014
comment
Внедрить собственную модель безопасности сложно, наверное, не стоит этого делать... Почему бы не использовать GAM?   -  person Marcos Crispino    schedule 20.08.2014
comment
Это приложение является клиентом для внешней системы. Он в основном использует веб-сервисы и представляет данные из этого источника. Таким образом, модель безопасности предполагает использование внешнего метода аутентификации. Могу ли я использовать GAM в этом сценарии? Нужно ли мне? Запрашивает ли GAM автоматически новый логин по истечении срока действия сеанса? Спасибо   -  person Jaime    schedule 20.08.2014


Ответы (1)


Вот некоторые элементы, которые могут вам помочь: Попробуйте сохранить веб-сессию на сервере состояний или на сервере sql, чтобы срок ее действия не истекал только потому, что asp.net перерабатывается, например, в случае, если вы работаете в .NET. Читать это

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

GAM: Попробуйте использовать GAM, с ним ваше приложение будет более безопасным. В этом случае вы можете использовать GAM! Вы также можете делегировать аутентификацию и авторизацию. Пожалуйста, ознакомьтесь с Внешняя аутентификация GAM и Внешняя авторизация GAM и функции и свойства репозитория GAM для обработки истечения срока действия сеанса.

person Armin Bachmann    schedule 21.08.2014
comment
Я предполагаю, что лучший вариант - использовать подход GAM. Я попробую это. Спасибо. - person Jaime; 03.09.2014