Я разрабатываю C# автономное однопользовательское настольное приложение, которое требует от пользователя входа в приложение. Я хочу, чтобы при отсутствии активности в течение 5 минут приложение запрашивало у пользователя логин снова. У меня есть несколько решений, чтобы сделать это, но не кажется эффективным. Раньше, занимаясь веб-программированием, я мог выполнять эту функцию с использованием переменной сеанса, поскольку в C# есть аналогичные функции, которые можно использовать для настольных приложений.Переменная сеанса в настольном приложении C#?
ответ
Один из способов сделать это - установить 5-минутный таймер, который всегда работает, и регистрирует пользователя, когда он тикает. Затем вы можете активировать любое действие с самого начала.
Если это приложение WinForms, вы можете использовать формы верхнего уровня IMessageFilter
. В вашей функции PreFilterMessage
вы должны перезапустить таймер и вернуть false
для сообщений, указывающих активность (WM_KEYDOWN
, WM_MOUSEMOVE
и т. Д.), Чтобы все нормально обрабатывалось.
Спасибо за ввод. У меня тоже было знакомое решение. Я буду реализовывать это. – abduls85
Нет, но состояние сеанса - это всего лишь список переменных, помогающих преодолеть безгражданность веб-приложений. Поскольку настольные приложения не являются апатридами, нет необходимости. Я бы просто использовал простой таймер или что-то подобное и запустил пользователя через 5 минут бездействия.
Вы всегда можете добавить триггер для автоматического выхода из системы в приложении Windows Forms. Вот ссылка с примерами с принятым ответом
How can I trigger an auto-logout within a Windows Forms Application?
Для мониторинга активности пользователей, вы можете создать пользовательскую форму на основе класса , из которых ваши заявки будут наследовать. Там вы можете подписаться на события MouseMove и KeyDown (настройка свойства KeyPreview на true), любой из которых будет поднят всякий раз, когда пользователь активен. Затем вы можете создать System.Threading.Timer с установленным временем , установленным на 30 минут, и отложить его с помощью метода Change() всякий раз, когда будет обнаружена активность пользователя.
Спасибо за помощь. – abduls85
- 1. Переменная сеанса в приложении WCF
- 2. переменная сеанса в C#
- 3. Переменная сеанса в C#?
- 4. CDI в настольном приложении
- 5. MongoDB в настольном приложении
- 6. BIRT в настольном приложении
- 7. Макеты в настольном приложении
- 8. Google Analytics в настольном приложении C++
- 9. Управление утечкой памяти в настольном приложении C#
- 10. Довольно печатная математика в настольном приложении C#
- 11. Воспроизведение видео в настольном приложении C#
- 12. веб-страница в настольном приложении C++
- 13. WinRT GUI в настольном приложении
- 14. Вставка русского в настольном приложении
- 15. переменная сеанса php сбрасывается в приложении android
- 16. Lazy loading JPA-сущности в настольном приложении
- 17. Практика регистрации в настольном приложении
- 18. весенняя проверка в настольном приложении
- 19. Реализация Log4J в настольном приложении
- 20. Проверка JavaBeans в настольном приложении
- 21. JFrame в настольном приложении Java
- 22. Автоматический перевод в настольном приложении
- 23. включая OWIN в настольном приложении
- 24. Интеграция Google Maps в настольном приложении Win32 C/C++
- 25. Проверка подлинности Twitter в настольном приложении
- 26. Запуск Solr на настольном приложении
- 27. Как скрыть окно в начале в настольном приложении C#?
- 28. как получить FindControl метод в настольном приложении в C#
- 29. DataContext в статическом классе в настольном приложении
- 30. Лучшая практика управления активами в настольном приложении C# NET
вы можете использовать простой таймер для этого –
возможного дубликата [Как Auto-Logout Внутри приложения Windows Forms] (http://stackoverflow.com/questions/4603374/how-to-auto-logout- in-windows-forms-application) – Gabe