我想使用C#将单个用户的权限分配给Windows中的文件夹,其他用户不应该能够打开或更改该文件夹的访问权限。
例如,如果我有3个用户 - Users组中的UserA,UserB和UserC。我想授予仅访问UserA的文件夹的权限。如果我拒绝访问用户组并允许UserA,则拒绝权限将优先,并且对UserA的访问也将被拒绝。
解决此问题的方法是拒绝Userb和Userc,并允许UserA访问该文件夹。但如果在设置用户帐户创建的权限后,该新帐户将拥有该文件夹的权限,则会出现问题。我不想有这种情况。
谢谢, Sujith
答案 0 :(得分:6)
ACL中未提及的任何人的默认权限是“无权限”(An Empty DACL不授予访问权限)。因此,请阻止文件夹从其父级继承安全性,并仅为UserA分配权限。
(当然,这并不妨碍管理员取得所有权,然后为自己授予权限。没有什么可以阻止它)
E.g。创建一个名为C:\FruitBat
的目录,该目录只能由用户DOMAIN\User1
访问:
System.Security.AccessControl.DirectorySecurity dacl = new System.Security.AccessControl.DirectorySecurity();
dacl.AddAccessRule(new System.Security.AccessControl.FileSystemAccessRule(@"DOMAIN\User1",
System.Security.AccessControl.FileSystemRights.FullControl,
System.Security.AccessControl.InheritanceFlags.ContainerInherit |
System.Security.AccessControl.InheritanceFlags.ObjectInherit,
System.Security.AccessControl.PropagationFlags.None ,
System.Security.AccessControl.AccessControlType.Allow));
System.IO.Directory.CreateDirectory(@"C:\FruitBat", dacl);