Отключение наследования на папке

234
04 июля 2017, 19:53

Создаю автоматический файловую структуру. И на папке Private, нужно отключить наследование. Но у меня не получается.

Вот мой код.

if (!Directory.Exists(path))
                        {
                            Directory.CreateDirectory(path);
                            SetFolderPermission(path, userName, FileSystemRights.ReadAndExecute);
                            SetFolderPermission(path, userName, FileSystemRights.Write);
                            RemoveFileSecurity(path, domainUsers, FileSystemRights.Write);
                            RemoveFileSecurity(path, domainUsers, FileSystemRights.Read);
                        }

И два метода

 public static void SetFolderPermission(string folderPath, string userName, FileSystemRights rights)
        {
            var directoryInfo = new DirectoryInfo(folderPath);
            var directorySecurity = directoryInfo.GetAccessControl();
            var fileSystemRule = new FileSystemAccessRule(userName,
                                                          rights,
                                                          InheritanceFlags.ObjectInherit |
                                                          InheritanceFlags.ContainerInherit,
                                                          PropagationFlags.None,
                                                          AccessControlType.Allow);
            directorySecurity.AddAccessRule(fileSystemRule);
            directoryInfo.SetAccessControl(directorySecurity);
        }
        public static void RemoveFileSecurity(string folderPath, string userName, FileSystemRights rights)
        {
            var directoryInfo = new DirectoryInfo(folderPath);
            var directorySecurity = directoryInfo.GetAccessControl();
            var fileSystemRule = new FileSystemAccessRule(userName,
                                                          rights,
                                                          InheritanceFlags.ContainerInherit |
                                                          InheritanceFlags.ContainerInherit ,
                                                          PropagationFlags.InheritOnly,
                                                          AccessControlType.Allow);
            directorySecurity.RemoveAccessRule(fileSystemRule);
            directoryInfo.SetAccessControl(directorySecurity);
        }

В первом методе я даю пользователю права на папку, а во втором пытаюсь отключить наследование для пользователей домена. И это скорее всего не правильно. Мне нужно поправить этот метод, чтобы он просто отключал бы наследование. Как мне это сделать?

Answer 1
directorySecurity.SetAccessRuleProtection(true, false);

О методе SetAccessRuleProtection

READ ALSO
XAML C# парсинг

XAML C# парсинг

Решил поюзать xaml c# , толком не разобрался ещё , но как я понял в среде разработки приложений для win10Вопрос в следующем : есть ли возможность...

327
WinApi Taskmgr. Не принимает SendMessage()

WinApi Taskmgr. Не принимает SendMessage()

Доброго времени суток, пытаюсь передать диспетчеру задач нажатие клавиши "Alt"

170
Как передать массив из php в javascript

Как передать массив из php в javascript

Получил массив из базы данныхНужно обработать его в javascript

374