开发者

How to set full control to a directory?

I am using the following simple code to add full control to a directory,开发者_Python百科 but it doesn't work.

        String dir_name = @"folder_full_path";
        DirectorySecurity dir_security = Directory.GetAccessControl(dir_name);
        FileSystemAccessRule access_rule = new FileSystemAccessRule(@"AccountName",
            FileSystemRights.FullControl, AccessControlType.Allow);
        dSecurity.AddAccessRule(access_rule);
        Directory.SetAccessControl(dir_name, dir_security);

But this code only set special permissions to the target folder. This code is almost the same as the MSDN sample. I am scratching my head for a reasonable explanation... Hope someone could shed some light on me.

Many thanks.


After some reverse Engineering of the original ACL rules I got it to work with the following code:

IdentityReference everybodyIdentity = new SecurityIdentifier(WellKnownSidType.WorldSid, null);

FileSystemAccessRule rule = new FileSystemAccessRule(
    everybodyIdentity,
    FileSystemRights.FullControl, 
    InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit,
    PropagationFlags.None,
    AccessControlType.Allow);

May it helps any further visitor :)


:) Turn around.

  • Make a directory.

  • Assign Permissions.

  • Read DirectorySecurity ACL and check in the debugger how it looks ;)

Voila.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜