允许非管理员在程序文件中更新.Config文件

时间:2012-05-07 10:33:33

标签: c# configuration-files non-admin

我正忙于处理一个软件,该软件在安装文件夹(C:/ Program Files / ...)中存储.config文件。当使用软件时,需要更新此配置文件,当用户具有管理员权限时,该软件当前正常工作,但是当非管理员用户尝试使用软件时,由于他们无权更新C中的文件,因此会发生例外: / Program Files /.

用于更新配置文件的代码如下:

Configuration config = ConfigurationManager.OpenExeConfiguration(fileName);
config.AppSettings.Settings.Add("New Setting");
config.Save();

是否有允许非管理员用户更新此配置文件?也许通过更改实际配置文件中的内容或更改我更新它的方式?

理想情况下,我会将文件移动到App Data文件夹,但这可能是一项相当大的工作,所以我宁愿避免这样做。

非常感谢任何帮助。

提前致谢

1 个答案:

答案 0 :(得分:1)

您的安装程序(甚至应用程序在检测到它以管理员身份运行时)可以在配置文件上设置ACL,以允许普通用户读取和写入该特定文件。

然而,正如您所说的那样,正确的方法是使用应用程序数据文件夹。