【问题标题】:How can I view whether my application requires elevated privileges or not?如何查看我的应用程序是否需要提升权限?
【发布时间】:2016-12-16 21:29:36
【问题描述】:

我正在用 C++ 开发一个应用程序,该应用程序需要尽可能可移植,并且能够在没有提升权限的情况下运行,以便普通用户可以运行它。 但我不确定如何检查它,因为在我的系统中它运行时没有像 UAC 这样的弹出窗口或要求特权。有没有办法检查应用程序所需的权限?

【问题讨论】:

    标签: c++ windows elevated-privileges


    【解决方案1】:

    应用程序可以通过两种方式使窗口显示 UAC 提示以获取更高的权限:

    启发式

    Windows 包含heuristic-based detection 机制,该机制尝试检测您的应用程序是否应归类为“安装程序”,因此是否需要提升权限。这是自动完成的,如果它有误报,可能会导致问题,这会导致您的程序需要提升的权限。

    显式

    如果您不想依靠自动检测系统来正确分类您的应用程序,您可以通过修改应用程序的manifest 来明确说明您的应用程序需要什么高度级别。

    引用this MSDN article:

    asInvoker 不请求其他权限。此级别不需要额外的信任提示。

    如果您想保证您的应用程序不会被错误分类,则应在您的案例中使用此方法。

    【讨论】:

      【解决方案2】:

      如果您不会在应用清单中明确标记它,则它不需要提升权限,但是您需要确保所有功能都能正常工作。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-06-14
        • 2011-05-21
        • 1970-01-01
        • 2011-11-13
        • 1970-01-01
        • 2019-03-23
        • 2010-10-09
        • 1970-01-01
        相关资源
        最近更新 更多