【问题标题】:How do I know if I need a Manifest for .NET application for UAC purposes?我如何知道我是否需要用于 UAC 目的的 .NET 应用程序清单?
【发布时间】:2012-06-18 15:52:28
【问题描述】:

是否有规则或指南来了解是否需要 .NET 应用程序清单来实现 UAC 目的?

我有一个应用程序写入注册表(HKLM > 软件 > yadda yadda)并执行文件 I/O。我不确定它是否需要清单。文件 I/O 可能是网络共享(尽管应用程序本身会提示用户输入凭据)或本地。

如果我不确定,我宁愿不只是将其设置为最高级别。

【问题讨论】:

    标签: .net uac


    【解决方案1】:

    您应该包含一个清单。如果您不想总是请求不必要的提升,您可以请求 asInvoker 或highestAvailable。如果您的应用在没有提升的情况下无法运行,那么您可能别无选择,当然只能更改应用。

    在尝试学习这些东西时,我发现有几个网站非常方便。

    这个网站很好地解释了 UAC 的工作原理以及它如何影响您的应用程序:

    每个软件工程师必须了解的有关 Windows Vista 的知识 http://codefromthe70s.org/vistatutorial.aspx

    我还发现这篇关于清单的博文很有用:

    几个应用程序清单的奥秘和问题的答案 http://blogs.msdn.com/b/patricka/archive/2009/12/09/answers-to-several-application-manifest-mysteries-and-questions.aspx

    至于您的具体情况,最好的办法就是尝试一下。如果您能够写入所需的注册表项和无需提升的磁盘,那么您可以将其设置为 asInvoker。

    只要您不尝试将任何内容保存到受限区域(如系统目录),I/O 就不会造成问题。恐怕我不记得写给 HKLM\Software 的规则了。如果它在没有海拔的情况下工作,那就太好了。

    但作为最佳实践,我仍然会包含清单。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-14
      • 1970-01-01
      • 2010-11-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-20
      • 1970-01-01
      相关资源
      最近更新 更多