使用C#更改文件夹权限似乎不起作用

时间:2013-01-18 18:52:50

标签: c# permissions acl

当涉及到permisions时,我真的离开了我的舒适区。但是我想创建一个文件夹并让所有用户完全控制它。

DirectoryInfo NewDir = Directory.CreateDirectory(@"C:\Test");
DirectorySecurity dSecur = NewDir.GetAccessControl();
FileSystemAccessRule fAccess =
    new FileSystemAccessRule("Users", FileSystemRights.FullControl,AccessControlType.Allow);
dSecur.AddAccessRule(fAccess);
NewDir.SetAccessControl(dSecur);

但是下面的图片显示用户仍然没有完全控制权。

enter image description here

我错过了什么吗?谢谢!

1 个答案:

答案 0 :(得分:1)

如果您想要完全控制,则需要为ContainerInherit传递ObjectInheritInheritanceFlags

new FileSystemAccessRule(
    User, 
    FileSystemRights.FullControl, 
    InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit,
    PropagationFlags.InheritOnly, 
    AccessControlType.Allow
)

并确保在具有足够权限的用户下运行以授予对其他用户的完全控制权。