降级已启动流程的权利

时间:2013-07-01 18:49:25

标签: c# process

我需要从另一个应用程序启动一个应用程序。看起来我必须使用shell来执行它(因为我需要能够关闭启动器),但我也想降级给启动应用程序的权限。

这可能吗?启动器必须以管理员身份运行,但我希望以用户身份运行启动应用程序。

这就是我目前运行流程的方式:

Process process = new Process();
process.StartInfo = new ProcessStartInfo();
process.StartInfo.FileName = name;

process.Start();

原谅我,我忘了添加一些细节:

  • 我需要在.net 3.5 on mono
  • 上运行它
  • 我不想使用原生代码
  • 我需要以管理员模式运行启动器应用程序

2 个答案:

答案 0 :(得分:1)

以前似乎已经讨论过了,请查看:How do you de-elevate privileges for a child process

看起来UAC高程严格单向,所以解决方案有点粗糙,即代码注入资源管理器和类似的东西。

http://www.codeproject.com/Articles/18946/High-elevation-can-be-bad-for-your-application-How

答案 1 :(得分:0)

最终我决定创建一个可以以管理员身份运行启动器的引导程序,然后以普通用户身份运行该应用程序。启动器完成后,它将返回启动应用程序的引导程序可执行文件。