gpt4 book ai didi

c# - UAC 如何知道应用程序需要提升权限?

转载 作者:太空狗 更新时间:2023-10-29 20:30:59 46 4
gpt4 key购买 nike

我有一个 C# .NET 应用程序,其中包含我正在维护的大约 20 个支持程序集。

启动时,Windows 会显示一个 UAC 对话框,内容为:
是否允许以下​​程序对此计算机进行更改。

如果我禁用文件属性对话框中的“以管理员身份运行”复选框,我会看到一个对话框:
无法运行 [应用程序名称]。用户帐户“[Me]”没有足够的权限写入
C:\ProgramData[公司][应用名称]

此应用程序将尝试写入导致 UAC 请求用户许可的 ProgramData 目录。

UAC 如何知道应用程序将写入 ProgramData?
我可以更改什么以使 UAC 不提示?

最佳答案

  1. UAC 如何知道应用程序将写入 ProgramData

    • 在 UAC 架构的虚拟化过程中,ProgramData 可能位于“ protected 目录”列表下。 (需要来源) enter image description here
  2. 我可以更改什么以使 UAC 不提示?

    • 这里有几个选项 -
      1. 您似乎正在尝试写入 C:\ProgramData[Company][Product]
        对我来说,这看起来像是一个路径分离问题。您正在尝试创建 [或使用] 名为 C:\ProgramDataAdobePhotoshop 的目录如果您的应用程序没有分离这些目录,那么我认为这是导致您的 UAC 问题的原因。尝试添加路径分隔符。 C:\ProgramData\Adobe\Photoshop [举个例子]
      2. 禁用 UAC? UAC 用于防止未经授权的事件,如果您查看上面的流程图,任何具有写入“受限目录”或任何“提升的操作”签名的应用程序,它都会落入并引发 UAC 提示。您的用户会点击它,一切都很好。
      3. 使用 Application Data 文件夹,而不是 ProgramData 文件夹。该文件夹似乎被隐藏是有原因的。

我的建议 - 对于任何需要故事数据的应用程序 - 使用用户 Application Data 而不是 ProgramData 文件夹。如果您使用此目录,您将不会收到任何 UAC 提示。 (this question 可以提供帮助)

关于c# - UAC 如何知道应用程序需要提升权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17174253/

46 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com