我有一个以普通用户身份运行的用户界面。
用户界面通过tcp / ip与作为Windows服务运行的服务器组件进行通信。
该服务作为本地系统运行。
我的问题是该服务在“ProgramData \ MyApp”下创建了新文件夹。普通用户无法打开这些新创建的文件和文件夹,因为它们是由“系统”创建的。
在设置过程中,目录“ProgramData \ MyApp”的权限已经更改,以便每个人都具有完全访问权限。但它不是由服务创建的子文件夹继承的。
服务是否应该更改已创建文件和文件夹的权限?或者我可以准备“ProgramData \ MyApp”文件夹以允许每个人访问新创建的文件和文件夹吗?
修复:我的问题是从temp目录复制了具有错误权限的文件。临时目录中的权限已被继承......
答案 0 :(得分:2)
如果您的Windows服务作为本地系统运行,则应使用impersonation作为创建文件夹的代码。这样,调用该服务的用户将拥有文件夹和文件的完全权限。
如果您希望任何本地用户都可以访问该文件夹,可以使用AddAccessRule
,请查看C# - Set Directory Permissions for All Users in Windows 7
答案 1 :(得分:0)