目录安全

9
我的应用程序正在创建一个目录,以便我可以将日志文件存储在其中。我正在为该目录添加用户安全性,但我不知道如何使其传播。例如,我正在向目录添加用户everyone,并授予读取写入权限,但当我的应用程序在该目录中创建日志文件时,日志文件没有继承everyone的安全性(读取、写入)。
我错过了什么?
DirectorySecurity dirSec = Directory.GetAccessControl(_dbPath);
dirSec.AddAccessRule(new FileSystemAccessRule("Everyone", FileSystemRights.Write, AccessControlType.Allow));
dirSec.AddAccessRule(new FileSystemAccessRule("Everyone", FileSystemRights.ReadAndExecute, AccessControlType.Allow));
dirSec.AddAccessRule(new FileSystemAccessRule("Everyone", FileSystemRights.CreateFiles, AccessControlType.Allow));
Directory.SetAccessControl(_dbPath, dirSec);

1
请注意,如果系统不是以英语运行,则“Everyone”将无法工作,因为该名称在其他系统上进行了本地化(例如,在法语操作系统上为“Tout le monde”)。有关解决此问题的解决方案,请参见https://dev59.com/tG435IYBdhLWcg3wohtT。 - Pierre Arnaud
2个回答

5

你已经接近成功了,你缺少的部分是AuthorizationRule.InheritanceFlags标志 - 默认情况下,ACE不可继承,但如果添加InheritanceFlags属性,ACE将变得可继承。


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接