Не могу установить FullControl для каталога - PullRequest
0 голосов
/ 01 апреля 2011

Я пытаюсь установить FullControl for Everyone программно на коробке с Windows 7. Безуспешно.

var dirSec = dir.GetAccessControl();
var fsar = new FileSystemAccessRule(
    "Everyone",
    FileSystemRights.FullControl,
    InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit,
    PropagationFlags.InheritOnly, 
    AccessControlType.Allow);

dirSec.AddAccessRule(fsar);
dir.SetAccessControl(dirSec);

Это добавляет некоторые разрешения для группы Everyone (Список и Чтение), но не полный контроль.Если я редактирую разрешения безопасности с помощью Проводника, я могу установить для него FullControl.Есть идеи, почему это не удается?В моих попытках нет сообщений об ошибках.

Ответы [ 2 ]

1 голос
/ 01 апреля 2011

Это должно работать нормально:

    string path = @"C:\test";
    DirectorySecurity ds = Directory.GetAccessControl(path);
    ds.AddAccessRule(new FileSystemAccessRule("Everyone", FileSystemRights.FullControl, AccessControlType.Allow));
    Directory.SetAccessControl(path, ds);

Если это не сработает, то, похоже, ваше приложение не имеет прав для предоставления такого правила доступа.Попробуйте реализовать олицетворение.Вот пример: Олицетворение WindowsIdentity с использованием кода C #

0 голосов
/ 14 июня 2011
foreach (FileSystemRights permission in Enum.GetValues(typeof(FileSystemRights)))
{
    myDirectorySecurity.AddAccessRule(
        new FileSystemAccessRule(user,
                                 permission,
                                 InheritanceFlags.ContainerInherit |
                                     InheritanceFlags.ObjectInherit |
                                     InheritanceFlags.None,
                                 PropagationFlags.None,
                                 AccessControlType.Allow));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...