为本地网络上的特定用户授予访问规则权限

时间:2011-05-21 08:30:50

标签: c# directory-permissions local-network access-rights

我的应用正在使用本地网络,管理员使用以下代码为共享文件夹中的每个用户创建文件夹: 例如,“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);

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

1 个答案:

答案 0 :(得分:1)

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

一般来说,拒绝规则是错误的做法。最好只添加允许您授予访问权限的访问规则,如果没有允许规则与身份相匹配的身份将被拒绝访问 - 您不需要明确阻止它们。