Программно назначить разрешение списка контроля доступа (ACL) для «этой папки, подпапок и файлов»
Я должен назначить разрешение для папки и ее дочерней папки и файлов программно с использованием C # .NET. Я делаю это, как показано ниже:
<code>var rootDic = @"C:\ROOT"; var identity = "NETWORK SERVICE"; //The name of a user account. try { var accessRule = new FileSystemAccessRule(identity, fileSystemRights: FileSystemRights.Modify, inheritanceFlags: InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit, propagationFlags: PropagationFlags.InheritOnly, type: AccessControlType.Allow); var directoryInfo = new DirectoryInfo(rootDic); // Get a DirectorySecurity object that represents the current security settings. DirectorySecurity dSecurity = directoryInfo.GetAccessControl(); // Add the FileSystemAccessRule to the security settings. dSecurity.AddAccessRule(accessRule); // Set the new access settings. directoryInfo.SetAccessControl(dSecurity); } catch (Exception ex) { //... } </code>
Это действительно назначает разрешение на мой «C: \ ROOT» папка. Но он назначает разрешение только для подпапок и файлов, но не для «ROOT». папка.
Q: How can I define the FileSystemAccessRule
instance to assign permission to the ROOT folder, Subfolders and files?