我有一个以提升的特权运行的管理应用程序,我需要它来将一些敏感文件存储在只有系统管理员才能访问的目录中。

它可能与以下调用有关,但是我不确定如何配置它。

Directory.CreateDirectory(@"C:\SomePath", new AccessControl.DirectorySecurity() { AccessRightType = ?, AccessRuleType = ?, AuditRuleType = ?);

如果有更好的方法可以达到同样的效果,请告诉我。谢谢。

编辑:找到了一个好的实现here。如果有其他建议,请在一天之内解决问题。

最佳答案

找到了一个好的解决方案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);

10-05 20:04