代码之家  ›  专栏  ›  技术社区  ›  Cameron Peters

仅在需要时提升权限

  •  3
  • Cameron Peters  · 技术社区  · 16 年前

    我希望我的应用程序只在需要时请求特权提升。。。通常,我不希望我的应用程序以管理员身份运行,除非我需要使用第三方COM组件。

    可能 解决了这个问题,但是组件作者没有设置所需的注册表项,而且我不知道如何在C中使用CoCreateAsAdmin,以及如何与tlbimp创建的运行时可调用包装器结合使用。

    另一个解决方案是产生另一个进程,但我还没有这方面的经验。。。我不想创建一个完全独立的应用程序。。。如果有人能告诉我如何使程序集工作,我很乐意创建一个在单独的提升进程中运行的程序集。

    2 回复  |  直到 16 年前
        1
  •  3
  •   JSBÕ±Õ¸Õ£Õ¹    16 年前

    进程权限基于进程运行时使用的用户令牌,该令牌仅在进程启动时分配。因此,在流程已经启动之后,没有任何方法可以提升流程。在运行时提升的唯一可靠方法是生成一个新进程。

    Process 对象执行将注册和启动COM服务器的命令行。请确保 .exe 您正在运行时会将其标记为需要提升,并且在运行前会自动提示用户。