从Windows文件夹中删除权限

cym*_*org 4 c# windows permissions

我在远程服务器上有一个widows文件夹,我希望从该文件夹中删除特定用户的权限.我尝试过很多方法,似乎没什么用.

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

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);
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

Ric*_*ard 5

创建新ACL后,需要将其应用于该文件夹.

dirinfo.SetAccessControl(dsec);
Run Code Online (Sandbox Code Playgroud)

循环之后.

  • @ChibuezeOpata:在英国/国际英语中,"诀窍"这个词并不意味着我用美式英语收集它的方式有欺骗或不当行为."这就是诀窍"是一个常见的表达,意思就是"有效". (3认同)