2

我有一个以普通用户身份运行的用户界面。

用户界面通过 tcp/ip 与作为 Windows 服务运行的服务器组件进行通信。

该服务作为本地系统运行。

我的问题是该服务在“ProgramData\MyApp”下创建了新文件夹。这些新创建的文件和文件夹无法由普通用户打开,因为它们是由“系统”创建的。

在安装过程中,目录“ProgramData\MyApp”的权限已经改变,因此每个人都有完全访问权限。但它不会被服务创建的子文件夹继承。

该服务是否应该更改创建的文件和文件夹的权限?或者我可以准备“ProgramData\MyApp”文件夹以允许每个人访问新创建的文件和文件夹吗?

已修复:我的问题是从临时目录复制了权限错误的文件。临时目录的权限已被继承...

4

2 回答 2

2

事件如果您的 Windows 服务作为本地系统运行,您应该对创建文件夹的代码使用模拟。这样,调用该服务的用户将拥有文件夹和文件的完全权限。

如果您希望任何本地用户都可以访问该文件夹AddAccessRule,请查看此处C# - Set Directory Permissions for All Users in Windows 7

于 2012-10-26T09:21:30.063 回答
0

不要使用模拟。只需设置文件访问权限。

这是目录的示例:https ://stackoverflow.com/a/5398398/70386 (文件的工作方式相同)

MSDN:

于 2012-10-26T10:39:21.520 回答