【问题标题】:Unauthorized Access Exception writing file from .exe从 .exe 写入文件的未经授权的访问异常
【发布时间】:2013-10-08 16:13:47
【问题描述】:

我的 WPF 应用程序将 XML 文件写入 Windows 7/64 计算机上 CommonApplicationData 文件夹中的文件夹。这在 Visual Studio 2010 中运行良好。从 .EXE 文件运行时,我在写入文件时收到 System.UnauthorizedAccessException。

这是我最初设置文件夹的问题吗?还是这与可执行文件本身的权限有关?不太清楚如何处理这个??

保罗

【问题讨论】:

  • 您是否简单地尝试过“以管理员身份运行”。
  • 我想过……但从长远来看,我认为这个应用程序不需要以管理员身份运行。

标签: c# .net wpf


【解决方案1】:

我认为这是文件夹权限的问题。 可能 Visual Studio 以管理员身份运行您的应用程序,而 .EXE 文件以普通用户身份执行。

【讨论】:

  • 就是这样。这些文件夹是几个月前由其他人创建的。从长远来看,安装程序是否有责任设置为此目的创建的文件夹的权限?
  • 只有创建者才有对该文件夹的读取/执行权限。不过,有一些解决方法:codeproject.com/Tips/61987/…
  • 看起来@Killnine 建议是在运行时创建具有正确权限的文件夹。这应该对我有用,但我可能需要在安装时创建该文件夹,所以我希望安装程序可以为我做到这一点?
  • 是的,您可以使用安装程序来完成。 Example。另外,我记得,您还可以编写一些将在安装期间执行的代码。
【解决方案2】:

也许您希望始终重新评估将该数据 (XML) 存储在该位置。受限用户将无法对其进行写入。当然,您可以强制使用管理员权限,但您的用户可能并不总是拥有该选项(无论如何这有点像 hack)。

下面的问题似乎概述了一种解决方法,具体取决于用户的 priv 级别。

writing files to Common Application Data folder denied

【讨论】:

  • 该应用程序实际上将许多不同的设置/配置文件写入“设置”文件夹。似乎我应该能够允许更改该特定文件夹,同时要求其他文件夹具有更高级别的保护。
  • 有没有办法在文件级别的程序控制下动态允许不同安全级别的写入?
【解决方案3】:

右键单击 *.exe 文件并“以管理员身份运行”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-07-01
    • 2018-08-21
    • 1970-01-01
    • 1970-01-01
    • 2016-08-06
    • 1970-01-01
    • 1970-01-01
    • 2013-11-08
    相关资源
    最近更新 更多