我有一个以提升权限运行的管理员应用程序,我需要它将一些敏感文件存储在只有系统管理员才能访问的目录中。
它可能与以下调用有关,但我不确定如何配置它。
Directory.CreateDirectory(@"C:\SomePath", new AccessControl.DirectorySecurity() { AccessRightType = ?, AccessRuleType = ?, AuditRuleType = ?);
如果有更好的方法可以实现相同目的,请告诉我。感谢。
编辑:找到了良好的实施here。如果有任何其他建议,请将问题保留一天。
答案 0 :(得分:6)
找到了一个很好的解决方案here。
FileSystemAccessRule administratorRule = new FileSystemAccessRule("Administrators", FileSystemRights.FullControl, InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit, PropagationFlags.None, AccessControlType.Allow);
FileSystemAccessRule guestRule = new FileSystemAccessRule("Guest", FileSystemRights.CreateDirectories | FileSystemRights.CreateFiles, AccessControlType.Allow);
DirectorySecurity dirSec = new DirectorySecurity();
dirSec.AddAccessRule(administratorRule);
dirSec.AddAccessRule(guestRule);
Directory.CreateDirectory(@"C:\GuestTemp", dirSec);