9

私のアプリは、ログファイルを保存できるようにディレクトリを作成しています。ディレクトリにユーザーセキュリティを追加していますが、それを伝播させる方法がわかりません。たとえば、ユーザー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);
4

2 に答える 2

5

もうすぐです。欠落しているのは、AuthorizationRule.InheritanceFlagsフラグです。デフォルトではACEは継承できませんが、InheritanceFlags属性を追加すると、ACEは継承可能になります。

于 2009-11-28T20:00:18.553 に答える
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

于 2009-11-28T14:53:49.183 に答える