2

我有以下代码,应该从某个文件夹中删除用户的访问权限。不幸的是,它没有(访问规则仍然存在)。不会抛出异常。

AuthorizationRuleCollection arc = ds.GetAccessRules(true, true, typeof(NTAccount));

foreach (FileSystemAccessRule ar in arc)
{
    if (ar.IdentityReference is NTAccount)
    {
        NTAccount account = ar.IdentityReference as NTAccount;

        if (!AdminUsers.Contains(account.Value) &&
            ownerAccount != account.Value)
        {
            ds.RemoveAccessRule(ar);
            WriteLog("Removed rule for: " + account);
        }

     }
}

outputDirectory.SetAccessControl(ds);

我可以从我的日志中看到调用了 RemoveAccessRule。为什么规则没有了?

编辑:该规则是一个继承的规则。我需要做一些不同的事情来删除继承的规则吗?

4

1 回答 1

4

从阅读中看一下课堂上的SetAccessRuleProtectionDirectorySecurity ..我认为您需要..

ds.RemoveAccessRule(ar);
ds.SetAccessRuleProtection(true,false);

玩弄它。

于 2009-11-03T19:28:58.723 回答