1

我想使用 C# 仅将权限分配给单个用户到 Windows 中的文件夹,其他用户应该无法打开或更改该文件夹的访问权限。

例如,如果我有 3 个用户 - UserA ,UserB 和 UserC 在用户组。我想仅授予 UserA 访问文件夹的权限。如果我拒绝访问用户组并允许 UserA,则拒绝权限将优先,并且对 UserA 的访问也将被拒绝。

解决此问题的一种方法是拒绝 Userb 和 Userc,并允许 UserA 访问该文件夹。但是,如果在设置用户帐户创建的权限后,该新帐户将拥有该文件夹的权限,则会出现问题。我不想有这种情况。

谢谢, 苏吉思

4

1 回答 1

6

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);
于 2011-09-27T06:50:32.410 回答