从服务中模拟当前用户

Posted

技术标签:

【中文标题】从服务中模拟当前用户【英文标题】:Impersonate Current User from Service 【发布时间】:2013-03-13 15:26:13 【问题描述】:

不知道这是否可行,但我想在服务中模拟当前登录的用户?请注意,我不知道机器上当前登录/活动用户的用户名密码..

如果有人有任何关于如何做到这一点的文档/示例,那将是一个很大的帮助......

【问题讨论】:

服务是否始终处于活动状态,或者是否可以在用户登录时启动它? 如果有多个用户登录怎么办? 就个人而言,服务应该拥有自己的服务帐户权限、权限等。模拟用户我可以看到..很好地模拟服务我相信有更好的方法。否则为什么要创建服务帐户.. 如果我不想让你的服务冒充我怎么办? 【参考方案1】:

可以有 0、1 或 多个用户登录到机器。

处理服务和“该”登录用户交互的任何交互的最佳方式是将交互拆分为两个(或多个)程序。

服务代码只是将它需要的任何代码作为服务运行,并公开某种形式的 API。

在每个用户会话中运行第二个程序(例如,将其放在启动文件夹中),然后使用您设计的 API 连接到服务。

然后该服务可以跟踪当前正在运行的用户程序,并(如有必要)将请求发送回这些程序,要求它们在每个用户会话中执行活动。

【讨论】:

以上是关于从服务中模拟当前用户的主要内容,如果未能解决你的问题,请参考以下文章

Socket编程 ------ 模拟QQ聊天工具

在 wpf 应用程序中以调试模式检查当前用户凭据

windows 模拟用户会话创建进程

如何从Windows服务启动进程到当前登录的用户会话

如何从 Windows 服务启动进程到当前登录的用户会话

CreateProcessWithUser 无法模拟用户,出现错误 87、1349