我正在开发一个C#的独立单用户桌面应用程序,它需要用户登录到应用程序。我想确保当5分钟左右没有活动时,应用程序将提示用户再次登录。我有几个解决方案要做到这一点,但似乎并不高效。以前在进行网络编程时,我能够使用会话变量来实现这种功能,C#中有类似的功能可用于桌面应用程序。C#桌面应用程序中的会话变量?
回答
这样做的一种方法是设置一个始终运行的5分钟计时器,并在用户滴答时记录用户。然后,您可以从一开始就有任何活动重新启动计时器。
如果这是一个WinForms应用程序,您可以让您的顶级窗体实现IMessageFilter
。在您的PreFilterMessage
函数中,您将重新启动计时器,并返回false
以获取指示活动的消息(WM_KEYDOWN
,WM_MOUSEMOVE
等)以使所有内容都得到正常处理。
感谢您的输入。我也有一个类似的解决方案。我会执行这个。 – abduls85 2011-02-11 03:16:46
不,但会话状态只是帮助克服Web应用程序无状态性质的变量列表。由于桌面应用程序不是无状态的,因此没有必要。我只需使用一个简单的计时器或类似的东西,并在用户闲置5分钟后将用户注销。
您可以随时在Windows窗体应用程序中添加触发器以自动注销。这里是一个例子链接与接受的答案
How can I trigger an auto-logout within a Windows Forms Application?
监控用户活动,您可以创建一个自定义的基于表单类 从您的申请表格将继承。您可以在 中订阅MouseMove和KeyDown事件(将KeyPreview 属性设置为true),无论用户何时激活 ,都会引发其中任一项。然后,您可以创建一个System.Threading.Timer,并将应有的 时间设置为30分钟,并在检测到用户活动时使用Change()方法 将其推迟。
- 1. C#桌面应用程序?
- 2. 桌面应用程序C#全局变量
- 3. 使用桌面应用程序的PHP会话
- 4. GetCurrentSession会话作用于桌面应用程序
- 5. C++桌面应用程序的网页
- 6. DotNetOpenAuth和C#桌面应用程序
- 7. c#windows桌面应用程序.MVS
- 8. facebook桌面应用程序C#
- 9. C#桌面应用程序许可证
- 10. C#tabindex - 泛化(桌面应用程序)
- 11. Quartz.Net桌面应用程序执行/ C#
- 12. C#windows桌面应用程序
- 13. Web应用程序中的SSRS报告清除会话变量?
- 14. WCF应用程序中的会话变量
- 15. 如何在基于Java的桌面应用程序中管理会话?
- 16. Facebook桌面应用程序
- 17. .Net桌面应用程序
- 18. 在桌面应用程序
- 19. Java桌面应用程序
- 20. 桌面应用程序
- 21. Python桌面应用程序
- 22. gtkmm桌面应用程序
- 23. netbeans桌面应用程序
- 24. HTML5桌面应用程序
- 25. java桌面应用程序
- 26. Java桌面应用程序?
- 27. 桌面应用程序
- 28. 会话变量在asp.net应用程序中超时
- 29. asp.net mvc应用程序会话变量在IIS中为空6
- 30. 在另一个应用程序中销毁会话变量
你可以使用一个简单的定时器用于该 – 2011-02-11 02:23:07
可能重复[如何自动注销在Windows窗体应用程序(http://stackoverflow.com/questions/4603374/how-to-auto-logout-在Windows窗体应用程序) – Gabe 2011-02-11 02:55:46