4

我在远程服务器上有一个寡妇文件夹,我希望从中删除特定用户的权限。我已经尝试了很多方法,但似乎没有任何效果。

以下代码没有错误,但权限保持不变。我是否没有使用正确的对象或缺少这些对象的某些步骤?任何帮助将不胜感激。

dirName 作为共享传递,例如 \myserver\myfolder

private void removePermissions(string dirName, string username)
    {
        string user = System.Environment.UserDomainName + "\\" + username;
        DirectoryInfo dirinfo = new DirectoryInfo(dirName);
        DirectorySecurity dsec = dirinfo.GetAccessControl(AccessControlSections.All);

        AuthorizationRuleCollection rules = dsec.GetAccessRules(true, true, typeof(System.Security.Principal.NTAccount));
        foreach (AccessRule rule in rules)
        {
            if (rule.IdentityReference.Value == user)
            {
                bool value;
                dsec.PurgeAccessRules(rule.IdentityReference);
                dsec.ModifyAccessRule(AccessControlModification.RemoveAll, rule, out value);
                MessageBox.Show("Removed permission from " + dirName + " for " + user);
            }
        }
    }
4

1 回答 1

5

创建新 ACL 后,您需要将其应用到文件夹。

添加

dirinfo.SetAccessControl(dsec);

循环之后。

于 2012-09-04T10:42:44.903 回答