我的WPF应用程序将文件下载并缓存到C:\ProgramData\CompanyName\ProductName\Data\
目录中。
如果另一个用户在下载(创建)文件时登录,即使我是管理员,我也无法覆盖该文件以进行更新。
当我也是管理员用户时为什么没有写访问权限?
屏幕截图显示了我无法覆盖的文件的文件权限。
我知道我必须提升流程来执行“管理员”任务(as explained here),但是看到另一个用户是管理员(我也是),并且看到另一个用户是管理员。文件是“管理员”-为什么我对所有者在同一组中的文件没有写权限?我们为什么不共享相同的特权?
答案 0 :(得分:1)
下载并保存文件后,您可以通过如下代码为所有用户(或任何其他适当的组)设置完全访问权限:
var fileSecurity = File.GetAccessControl(path);
fileSecurity.AddAccessRule(
new FileSystemAccessRule(
new SecurityIdentifier(WellKnownSidType.BuiltinUsersSid, null),
FileSystemRights.FullControl,
AccessControlType.Allow));
File.SetAccessControl(path, fileSecurity);