远程桌面连接到现有会话的远程桌面会话事件触发NPLogonNotify的网络提供商。但有没有一种方法,我可以找出它是一个登录事件还是连接到现有会话的事件?有没有办法检测NPLogonNotify
1
A
回答
1
LsaGetLogonSessionData从登录会话ID中返回终端服务会话ID。所以你可以尝试用WTSConnectState调用WTSQuerySessionInformation。幸运的是,结果将区分你所关心的两种情况。
如果不是,并且如果您在从NPLogonSession返回之前不需要知道答案,则可以观察与调用NPLogonSession相关的终端服务会话会发生什么,可能使用WTSRegisterSessionNotification。
我相信,如果用户连接到现有会话,从NPLogonNotify终端服务会话将返回到空闲或侦听状态。此外,NPLogonNotify调用中的登录会话将被关闭。您可以通过调用LsaEnumerateLogonSessions来枚举登录会话。
如果用户收到一个新的会话,我认为,从NPLogonNotify调用同一个终端服务会话将被使用,因此将进入活跃状态。通常有也将启动一个或多个进程被从调用NPLogonNotify登录会话ID相关联。您可以通过使用GetTokenInformation与TokenStatistics查询类确定与进程相关联的登录会话,如MSDN词汇"logon identifier"下描述。
需要注意的一个额外复杂因素是:如果用户是管理员,并且UAC已启用,则会有两次调用NPLogonNotify,一次与限制用户令牌关联,另一次与提升的用户令牌关联。本地和远程登录都是如此。
相关问题
- 1. 有没有办法通过遗传算法检测公式?
- 2. 有没有办法做一个“无法检测的,iframe代码”
- 3. 有没有办法测试CSS文件?
- 4. 有没有办法测试变量“isForEachable”
- 5. iPhone - 有没有办法检测图片从哪里被选择?
- 6. 有没有办法检测SqlConnection上的开放阅读器?
- 7. 有没有办法通过Google API检测撤销的权限?
- 8. 有没有办法检测一个网站是否使用SPDY?
- 9. 有没有办法自动检测Django模板中的链接?
- 10. 有没有办法检测apk是否存储在SD卡上?
- 11. 有没有办法检测主要的投资回报率?
- 12. 有没有办法在Flex 4中检测屏幕分辨率?
- 13. 有没有办法检测Iphone,如果通过javascript动摇?
- 14. 有没有办法在jQuery中检测鼠标按键?
- 15. 有没有办法在Javascript中检测DOM节点的变化?
- 16. 有没有办法检测到取消下载?
- 17. 有没有办法检测何时加载磁贴失败?
- 18. 有没有办法检测自定义模块是否存在?
- 19. 有没有办法检测通知栏是否已被清除?
- 20. 有没有办法在纯PHP中检测循环数组?
- 21. 有没有办法从facebook api中检测用户的“人性”?
- 22. 有没有办法检测Rails的用户代理3.1
- 23. 有没有办法检测传入的Skype电话?
- 24. 有没有办法使用jQuery检测画布线?
- 25. 有没有办法加快这个重复检测查询?
- 26. 有没有办法检测applet何时关闭?
- 27. 有没有办法检测驱动器是否是SSD?
- 28. 有没有办法增强这个圈子来检测它?
- 29. 有没有办法检测QT QRunnable对象何时完成?
- 30. 有没有办法检测对象是否被锁定?