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