public static void SetDirDacl(string folder, string account) { try { DaclUtil.CleanDirSecurity(folder); } catch { } DirectoryInfo directoryInfo = new DirectoryInfo(folder); DirectorySecurity accessControl = directoryInfo.GetAccessControl(); FileSystemAccessRule rule = new FileSystemAccessRule(account, FileSystemRights.FullControl, InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit, PropagationFlags.None, AccessControlType.Allow); accessControl.SetAccessRule(rule); DirectorySecurity directorySecurity = accessControl; directoryInfo.SetAccessControl(directorySecurity); }
public static void SetFileDacl(string file, string account) { try { DaclUtil.CleanFileSecurity(file); } catch { } FileInfo fileInfo = new FileInfo(file); FileSecurity accessControl = fileInfo.GetAccessControl(); FileSystemAccessRule rule = new FileSystemAccessRule(account, FileSystemRights.FullControl, AccessControlType.Allow); accessControl.AddAccessRule(rule); FileSecurity fileSecurity = accessControl; fileInfo.SetAccessControl(fileSecurity); }