【问题标题】:Writing to read only files from C#从 C# 写入只读文件
【发布时间】:2012-05-22 09:03:01
【问题描述】:

我有 Word 插件,它会不断更新“C:\program files\microsoft office\”中的“winword.exe.config.xml”文件。

我需要修改这个文件,在运行 MS word 时更新一些参数。

当用户为“管理员”时,文件中的更改已成功更新,没有任何问题。

如果是非管理员帐户(他们没有文件权限),更改不会反映,因为没有写入权限。

有什么方法可以让非管理员帐户的 C# 代码成功写入这些文件,而不要求用户更改文件的权限。

【问题讨论】:

  • 非管理员帐户的想法不是不允许在未经许可的情况下修改受保护的文件吗?

标签: ms-word c#-2.0 file-permissions


【解决方案1】:

如果您可以控制加载项,那么您只需为配置文件选择不同的位置。标准用户具有写入权限的位置。

如果您无法控制加载项,那么您有两个可行的选择:

  1. 始终以管理员身份运行 Word。
  2. 向配置文件添加 ACL 以向标准用户授予写入权限。

你问:

有没有什么方法可以让非管理员帐户的 C# 代码成功写入这些文件,而无需要求用户更改文件的权限。

不,没有。想象一下,如果有办法做到这一点。这将完全否定文件系统安全的实用性。

【讨论】:

  • 我尝试了将配置文件写入用户具有权限的其他位置的选项,但是当 MS Word 加载时,它总是从默认目录加载配置文件,我的更改没有用。 .Net 1.1 完美无缺,但 .Net 2.0 存在这个问题。
  • 好吧,我不知道你是如何加载配置文件的。但是您需要将其保存并加载到 Program Files 以外的其他位置。
猜你喜欢
  • 1970-01-01
  • 2021-09-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-17
  • 2020-05-23
  • 1970-01-01
相关资源
最近更新 更多