我正在开发一个应该在 Windows 8 和 7 上运行的 .net 3.5 应用程序。
作为应用程序的一部分,我将在 C:\ProgramData 下创建一个新文件夹。
创建文件夹后,我设置了以下 ACL - 允许所有人读写。
var directorySecurity = directoryInfo.GetAccessControl();
var worldSecurityIdentifier = new SecurityIdentifier(WellKnownSidType.WorldSid, null);
directorySecurity.AddAccessRule(new FileSystemAccessRule(worldSecurityIdentifier, FileSystemRights.Read, AccessControlType.Allow));
directorySecurity.AddAccessRule(new FileSystemAccessRule(worldSecurityIdentifier, FileSystemRights.Write, AccessControlType.Allow));
在 Windows 8 上,我遇到以下行为:如果我将文件复制到该目录,当我查看文件属性中的安全选项卡时,这就是我所看到的。
我不明白这个用户是谁以及它是如何创建的。还有我为大家定义的 ACL 在哪里?
似乎这个未知的 SID 获得了我为所有人设置的 ACL。
我怀疑这可能是因为我正在.net 3.5 而不是 4 上开发,但是当我将目标框架更改为 4 时它没有帮助。
当我检查调试什么是 worldSecurityIdentifier 时,这就是我得到的
谁能帮我解决这个问题?