.net 和管理员权限 - 如何针对 2 个不同的场景嵌入清单文件

发布于 2024-11-06 13:24:02 字数 422 浏览 3 评论 0原文

我有一个 .net 应用程序,它将安装在“程序文件”下,以两种不同的模式运行:

  • “ADVANCED_MODE”以及所有插件 启用后会弹出 UAC 以管理员身份运行
  • “BASIC_MODE”,仅使用很少的插件 已加载,应该可以正常工作 用户

该如何解决这个问题?

如果我嵌入清单文件(requireAdmin 设置为开),它将不适用于 BASIC_MODE。如果我不使用任何清单,那么我就没有机会在 ADVANCED_MODE 下弹出 UAC。如果我使用“asInvoker”或“highestAvailable”,当我以普通用户帐户从程序文件运行该应用程序时,我会得到奇怪的效果:它在启动后立即关闭,没有任何崩溃。

你会怎么办?我有什么选择?

I have one .net application which would be installed under "program files" running in 2 different modes:

  • "ADVANCED_MODE" with all plugins
    enabled which should pop-up the UAC
    to run as administrator
  • "BASIC_MODE" with only few plugins
    loaded which should work as normal
    user

What to do to solve this case?

If I embed a manifest file (requireAdmin set on), it will not work for BASIC_MODE. If I don't use any manifests, then I don't have the chance to popup the UAC in ADVANCED_MODE. If I use "asInvoker" or "highestAvailable" I get strange effects when I run the app from Program Files as normal user account: it closes immediately after startup without any crash.

What would you do? What are my options?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

野鹿林 2024-11-13 13:24:02

在清单中使用 asInvoker,当您的应用程序以 ADVANCED_MODE 启动时(并且您还不是管理员),使用 ShellExecute 和“runas”动词启动应用程序的新实例。

这些“奇怪的效果”表明您的应用程序无法真正以非管理员身份运行(如果没有清单,您的应用程序将使用一些兼容性填充程序(如文件和注册表重定向)运行)您可以使用 Microsoft 应用程序兼容性工具包LUA Buglight进程监视器,用于查找标准用户错误...

Use asInvoker in your manifest and when your app is started in ADVANCED_MODE (and you are not already admin), start a new instance of your app with ShellExecute and the "runas" verb.

These "strange effects" indicate that your app can't really run as non-admin (Without a manifest your app will run with some compatibility shims like file & registry redirection) You can use the Microsoft Application Compatibility Toolkit, LUA Buglight and Process Monitor to look for standard user bugs...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文