我有一个与文件系统一起使用的程序,需要某些方法才能以管理员身份运行。我无法将自己运行的应用程序作为管理员运行,因为我需要在表单上使用拖放功能。我想一个方法不能用管理员权限执行。我真的不想为一种方法制作一个花药可执行文件。如果我确实创建了另一个可执行文件,那么通过应用程序传递多个参数并重定向输出的最佳方法是什么?我希望我正确地说明这一点,并使我自己清楚。
答案 0 :(得分:4)
您无法以管理员身份运行单个方法。但是,您可以在方法开始时模拟具有管理员权限的用户,以其他用户身份执行某些代码,然后返回原始用户。
以下问题的接受答案列出了一些选项:How do you do Impersonation in .NET?
在回答上述相关问题时,Matt Johnson还展示了一些无忧无虑的代码,他显然也将其作为DLL发布到GitHub,在那里你可以下载并使用它。
答案 1 :(得分:0)
您唯一的选择是:
对于IPC路由,我所知道的最简单的方法是使用WCF with named pipes,您只需像处理代码中的任何其他类一样处理WCF通信,只需通过普通函数进行通信。
答案 2 :(得分:0)
如果我理解正确,您需要程序以提升模式启动。 最简单的方法是将其指定为应用程序清单文件中的一项要求。
要向您的应用添加清单,您可以按以下步骤操作:
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
替换为<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
您可以阅读有关应用程序清单here的更多信息。