0

我的应用程序在本地网络上运行,管理员使用此代码为共享文件夹上的每个用户创建文件夹:例如“me1”是本地网络上的用户。

DirectoryInfo d=new DirectoryInfo(@"\\server\Test");
DirectoryInfo di = new DirectoryInfo(@"\\server\Test\me1");
di.Create(d.GetAccessControl());
DirectorySecurity dSecurity = di.GetAccessControl();

dSecurity.AddAccessRule(new FileSystemAccessRule("everyone",
                                                 FileSystemRights.FullControl,
                                                 AccessControlType.Deny));
di.SetAccessControl(dSecurity);

现在每个用户都无法访问他的文件夹,我使用以下代码:

DirectoryInfo dInfo = new DirectoryInfo(@"\\Server\Test\me1");
DirectorySecurity dSecurity = dInfo.GetAccessControl();
dSecurity.AddAccessRule(new FileSystemAccessRule("everyone",
                                                 FileSystemRights.FullControl,
                                                 AccessControlType.Allow));
dInfo.SetAccessControl(dSecurity);

但出现错误“访问被拒绝”。如何为特定用户设置权限?我的意思是管理员可以在创建目录时授予特定用户权限吗?谢谢。

4

1 回答 1

1

首先检查拒绝访问控制规则 (ACE),并且每个人都在Everyone组中。因此,第一个 ACE 将阻止所有人的所有访问,包括您尝试更改权限。

通常拒绝规则是错误的方法。最好只添加提供您想要授予的访问权限的访问规则,如果没有与身份匹配的允许规则,该身份将被拒绝访问 - 您不需要显式阻止它们。

于 2011-05-21T08:40:56.070 回答