目录安全

时间:2009-11-28 13:21:44

标签: c# security directory-security

我的应用正在创建一个目录,以便我可以在其中存储日志文件。我正在为目录添加用户安全性,但我不知道如何使其传播。例如,我将用户everyone添加到目录中,readwrite访问,但是当我的应用程序在此目录中创建日志文件时,日志文件没有继承了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);

2 个答案:

答案 0 :(得分:5)

你快到了。您缺少的是AuthorizationRule.InheritanceFlags标志 - 默认情况下,ACE不可继承,但如果添加InheritanceFlags属性,ACE将变为可继承。

答案 1 :(得分:0)

在DirectorySecurity下的MSDN中,它有这一行:

Use the FileSecurity class to retrieve, add, or change the access rules that represent the DACL and SACL of a file.

我认为您需要查看更改文件的ACL ...

MSDN参考: http://msdn.microsoft.com/en-us/library/system.security.accesscontrol.directorysecurity.aspx