Страницы

Поиск по вопросам

пятница, 26 апреля 2019 г.

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

Создаю автоматический файловую структуру. И на папке 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); }
В первом методе я даю пользователю права на папку, а во втором пытаюсь отключить наследование для пользователей домена. И это скорее всего не правильно. Мне нужно поправить этот метод, чтобы он просто отключал бы наследование. Как мне это сделать?


Ответ

directorySecurity.SetAccessRuleProtection(true, false);
О методе SetAccessRuleProtection

Комментариев нет:

Отправить комментарий