Безопасность файлов Windows, удаление правила доступа

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. Почему не исчезло правило?

Изменить: Это правило является унаследованным. Нужно ли мне делать что-то другое, чтобы удалить унаследованные правила?

  • 1
    есть ли родительская папка, которая применяет правило, которое вы пытаетесь удалить?
  • 0
    Наследуется, если ты это имеешь в виду ...
Теги:

1 ответ

4
Лучший ответ

Взгляните на SetAccessRuleProtection на класс DirectorySecurity, прочитав его. Думаю, вам понадобится..

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

играйте с ним.

  • 0
    Я верю, что это было именно так. Это замечательно, большое спасибо.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню