【发布时间】:2013-08-01 10:01:43
【问题描述】:
我的应用程序通常由 UserA 作为 UserB 使用 System.Process.Start("app.exe", "UserB", "secret") 启动。
现在,我希望 app.exe 生成额外的子进程,但作为 UserA,没有 UserB 拥有的额外权限。
有没有办法在不询问用户A 的密码的情况下完成此操作?
我尝试在没有凭据的情况下仅使用 System.Process.Start,以及调用 cmd /C child.exe,但两种方法都以 UserB 身份启动 child.exe。我在想一种方法让当前的 shell 为我启动子进程,但我什么也没找到。
【问题讨论】:
-
我不认为你可以,(如果用户 A 是具有额外权限的用户,那可能会非常危险)
-
好点。从这个角度来看,我怀疑你是对的。也许
app.exe可以被授予适当的权限。我在那里紧紧地控制着起点,这样我就可以设置它们。如果它们存在。 =) -
如果您正在控制该启动,不能在
appX(执行启动的那个)和app.exe之间安排某种反向通道,以便后者可以请求前者(仍以用户 A 身份运行)启动新进程? -
可以的,是的。它所涉及的工作比我希望的要多,但这是一个解决方案。为什么不将此作为答案发布?
标签: c# windows impersonation