我的应用正在使用本地网络,管理员使用以下代码为共享文件夹中的每个用户创建文件夹: 例如,“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);
但发生错误“访问被拒绝”。 如何为特定用户设置权限? 我的意思是管理员可以在创建目录时授予特定用户权限吗? 感谢。
答案 0 :(得分:1)
首先检查拒绝访问控制规则(ACE),并且每个人都在Everyone
组中。因此,第一个ACE将阻止对所有人的所有访问,包括您尝试更改权限。
一般来说,拒绝规则是错误的做法。最好只添加允许您授予访问权限的访问规则,如果没有允许规则与身份相匹配的身份将被拒绝访问 - 您不需要明确阻止它们。