如何将文件设置为可供所有用户写入?

时间:2011-09-16 12:30:22

标签: c# file permissions

我想将文件设置为可供所有用户写入。

FileSecurity sec = File.GetAccessControl(fileName);

string users = ?????;
sec.AddAccessRule(new FileSystemAccessRule(
        users,
        FileSystemRights.Write, 
        AccessControlType.Allow));

File.SetAccessControl(fileName, sec);

问题是我不知道要使用哪个字符串。我尝试了users = WindowsAccountType.Normal.ToString(),但只提供"Normal",但这不起作用。如何获取指定计算机上所有用户组的字符串?

2 个答案:

答案 0 :(得分:7)

我假设您正在寻找所有登录用户所属的“Everyone”组。但是,使用字符串“Everyone”会让你在非英语系统上遇到严重问题

更好的解决方案是通过SecurityIdentifier WellKnownSidType.WorldSid使用它:

SecurityIdentifier everyone = new SecurityIdentifier(WellKnownSidType.WorldSid, null);

这个答案中已经描述了完整的解决方案:Add "Everyone" privilege to folder using C#.NET

答案 1 :(得分:4)

尝试“Everyone”,这是在每台计算机上甚至在AD域上定义的系统帐户(如果有的话)(在这种情况下为DOMAIN \ Everyone)