2

我正在尝试发布一个 C++ .Net 应用程序,并且对 Windows UAC 感到非常沮丧。我一直没有太多的经验,因为一直在为 XP 编写。

该程序需要更新一些存储在两个 XML 文件中的属性,如果它没有使用管理员帐户运行,则每次尝试都会被拒绝访问。我已遵循 Microsoft 的建议,并将所有需要修改的文件写入 CSIDL_COMMON_APPDATA 文件夹。安装程序有一个动作,在后者中创建 [Organization}[Program] 结构,并添加具有完全控制权限的安全组 Every One,因为默认情况下,该目录是只读的。我已经验证创建的目录 [Organization}[Program] 实际上包含安装后分配的组和权限。此外,该应用程序有一个带有请求执行级别的清单,我已经尝试过 asinvoker 和 Highestavailable。

除非用户未以管理员身份登录,否则应用程序仍然无法写入目录...

这些机器位于由服务器 2003 控制的域中,但客户端是 XP、vista 和 7 的混合。

拜托,有比我更有经验的人能启发我吗?我应该使用其他文件夹吗?问题是不同的用户可能会登录到计算机并且这些设置是通用的,因此明显的用户文件夹不是一个选项。

我无法使用安装程序将用户添加到文件夹的安全性中,因为我不知道域中的哪个用户将使用该程序,并且在启动时我无法从程序中执行此操作,因为如果用户没有管理员权限程序将被阻止。

请,关于我在这里缺少什么的任何建议或指示?

4

1 回答 1

1

可能会讨论您的问题。尤其看

应用程序的安装程序需要在 CSIDL_COMMON_APPDATA 的子目录上设置 ACL,以允许用户根据应用程序的要求访问该目录

于 2012-07-19T06:46:14.153 回答