Suj*_* Kp 1 c# filesystem-access
我想使用C#将单个用户的权限分配给Windows中的文件夹,其他用户不应该能够打开或更改该文件夹的访问权限.
例如,如果我有3个用户 - 用户组中的UserA,UserB和UserC.我想授予仅访问UserA的文件夹的权限.如果我拒绝访问用户组并允许UserA,则拒绝权限将优先,并且对UserA的访问也将被拒绝.
解决这个问题的方法是拒绝Userb和Userc,并允许UserA访问该文件夹.但如果在设置用户帐户创建的权限后,该新帐户将拥有该文件夹的权限,则会出现问题.我不想有这种情况.
谢谢,Sujith
ACL中未提及的任何人的默认权限是"无权访问"(空的DACL不授予访问权限).因此,请阻止文件夹从其父级继承安全性,并仅为UserA分配权限.
(当然,这并不妨碍管理员获取所有权,然后为自己授予权限.没有什么可以阻止这种情况)
例如,要创建一个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);
Run Code Online (Sandbox Code Playgroud)