【问题标题】:.net Admin Rights [duplicate].net 管理员权限 [重复]
【发布时间】:2014-11-12 19:33:14
【问题描述】:

在说这是另一个重复的问题之前,它不是。

所以我正在编写一个需要完全管理员权限的应用程序,在一切顺利之前,我可以通过编辑清单并将其设置为 requireAdministrator 来毫无问题地完成它。

现在..问题是这样的:我的应用程序在启动时启动,所以每次 UAC 弹出。我注意到,例如防病毒软件仅在第一次时才需要管理员权限,而并非每次重新启动系统时都需要管理员权限。

那么.. 是否可以让应用程序仅在第一次打开时才显示 UAC,而不是总是?

【问题讨论】:

  • 重复的。尝试使用搜索。至于您的示例:病毒扫描程序将自身安装为较低级别的系统对象,例如 Windows 服务和文件系统过滤器驱动程序,并且您只需要 UAC 执行一次:在安装期间。然后服务或驱动程序在不同的权限甚至不同的环下运行。病毒扫描程序的 GUI 只是向服务发送命令,因此它不需要管理权限。
  • 仅仅它不是重复是不够的。如果您认为它与其他问题不同,则需要具体说明它与哪个问题相似,以及为什么它不是重复的。
  • @CodeCaster 那么如何在没有 requireAdministrator 的情况下创建自己的服务并将其与我的应用程序连接起来。我不需要代码,我只想要一些理论。你说它可以用低级语言编码,所以 c++ 应该很好。
  • 尝试将其作为任务运行的答案。 superuser.com/questions/119086/…

标签: c# .net vb.net uac


【解决方案1】:

我认为您错过了 UAC 的重点。当一个进程表明它需要管理员权限时,它会触发一个 UAC 提示,例如安装应用程序或修改系统文件。因此,如果您的应用程序不需要经常需要管理员权限,那么不要让它要求它们。将需要管理员权限的部分分离到单独的组件中。

【讨论】:

  • 应用程序启动时在清单中声明的​​ UAC 弹出窗口
  • @xpirt 您不仅限于发布单个可执行文件。您可以有多个可执行文件,每个都有自己的清单。这方面的常见示例是具有自我更新程序的应用程序。该自我更新程序通常是一个单独的可执行文件。
  • 是的,但对于 ex。我的应用程序需要在每次启动时编辑一个注册表项,因此它必须运行提升。但是每次查看弹窗真的很烦人..
  • @xpirt 然后要求用户禁用 UAC,或者重新设计您的应用程序,使其无需修改注册表项。
  • 这不是专业的方法:)
猜你喜欢
  • 2011-10-22
  • 1970-01-01
  • 2011-06-01
  • 2014-04-18
  • 1970-01-01
  • 1970-01-01
  • 2011-12-25
  • 1970-01-01
相关资源
最近更新 更多