模仿后回退到默认用户的子进程

时间:2013-08-01 10:01:43

标签: c# windows impersonation

我的应用程序通常由UserA作为UserB使用System.Process.Start("app.exe", "UserB", "secret")启动。

现在,我希望app.exe生成其他子进程,但是作为UserA,没有UserB具有的额外权限。

有没有办法在不向UserA询问密码的情况下完成这项工作?

我尝试使用没有凭据的System.Process.Start,以及调用cmd /C child.exe,但这两种方法都以UserB的身份启动child.exe。我正在考虑一种方法来让当前的shell为我启动子进程,但我还没找到任何东西。

1 个答案:

答案 0 :(得分:1)

最简单的解决方案是启动应用程序可以复制自己的安全令牌,并允许子进程继承它的句柄。句柄值可以在命令行上传递,也可以通过环境变量传递。

请注意,这有效地使用户B可以无限制地访问用户A的帐户。