【问题标题】:How to correctly implement "As Administrator" or "Run As Administrator" in .NET application for selected operations?如何在 .NET 应用程序中为选定的操作正确实现“以管理员身份”或“以管理员身份运行”?
【发布时间】:2011-10-15 03:04:38
【问题描述】:

我正在寻找正确的方法来允许提升选定操作的权限。

许多产品都提供类似的东西。

例如,如果您打开了 UAC,并且在浏览受限文件夹时使用 Total Commander(以基本权限运行),您将获得:

如果您推送As Administrator,您将看到常见的用户访问控制对话框,询问您是否要授予进程所需的权限。 .NET 应用程序中是否有类似的可能(即使支持 Win32)?

  1. 应如何正确实现此类功能?
  2. 我是否需要运行外部进程才能仅为选定的功能获得提升的权限?

我不是在寻找需要以管理员身份运行主进程的解决方案。

【问题讨论】:

  • 令牌(标准或管理员)在进程启动时分配,因此您需要一个单独的进程。这要么是您启动的进程,要么是进程外 COM 服务器。

标签: .net windows winapi permissions uac


【解决方案1】:

您将不得不将目标操作功能分解为一个单独的组件,该组件将被提升运行。这可以是需要提升的可执行文件,也可以是 COM 组件(可能是 .NET 组件的 COM 包装器)。详细信息可在http://msdn.microsoft.com/en-us/library/bb756990.aspx 获得,When to Add the Shield Icon to Your Application's User Interface 特别相关。

【讨论】:

  • 如果我没记错的话,在 .Net 应用程序中,您不能将 .Net 组件用作 com 对象,即使它暴露给 COM 也是如此。
猜你喜欢
  • 2010-12-19
  • 2011-12-29
  • 2013-05-31
  • 1970-01-01
  • 2011-09-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多