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.
精彩评论