首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在c#中使方法在管理员模式下运行的最佳方法是什么?

在c#中使方法在管理员模式下运行的最佳方法是什么?
EN

Stack Overflow用户
提问于 2014-02-17 15:01:05
回答 3查看 1.6K关注 0票数 0

我有一个程序,它经常与文件系统一起工作,并且需要某些方法来作为管理员运行。我不能让应用程序,它是自运行的管理,因为我需要使用拖放在表单上。我想有一种方法不能通过管理权限来执行。我真的不想为一种方法再做一个可执行的程序。如果我做了另一个可执行文件,那么通过应用程序传递多个参数并重定向输出的最佳方法是什么?我希望我正确地表达了这一点,并表明了我自己。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-02-17 15:11:19

不能以管理员身份运行单个方法。但是,您可以在方法开始时模拟具有管理员权限的用户,以其他用户的身份执行一些代码,然后返回到原始用户。

以下问题的公认答案列出了一些选项:如何在.NET中进行模拟?

在对上述链接问题的回答中,Matt还展示了一些免费的代码,显然他还将其作为DLL发布到GitHub,在那里您可以下载和使用它。

票数 4
EN

Stack Overflow用户

发布于 2014-02-17 15:07:16

你唯一的选择是:

  1. 以管理员身份运行整个程序
  2. 当用户想要执行管理功能时,将程序重新启动为admin。
  3. 重新考虑您的设计方法,使您的方法不再需要管理员。
  4. 使用某种形式的IPC启动第二个应用程序,该应用程序被提升,并为您完成请求。

对于IPC路由,我所知道的最简单的方法是使用WCF有命名管道,您只需像对待代码中的任何其他类一样对待WCF通信,只需通过正常的函数进行通信。

票数 0
EN

Stack Overflow用户

发布于 2014-02-17 15:15:15

如果我正确地理解了你,你需要你的程序开始在高架模式。最简单的方法是将其指定为应用程序清单文件中的需求。

为了向应用程序添加清单,您可以执行以下步骤:

  1. 右击您的项目
  2. 添加->新项目->应用程序报表文件
  3. 在新的.manifest文件中,将<requestedExecutionLevel level="asInvoker" uiAccess="false" />替换为<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
  4. 通过右键单击项目->属性->应用程序选项卡-> manifest,确保应用程序配置为与新清单一起运行

您可以阅读有关应用程序清单这里的更多信息。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21832370

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档