プログラムでフォルダー/レジストリ エントリにアクセス許可を割り当てる際に問題が発生しました。次のコードを使用して、継承権限を割り当てることができました。
FileSystemAccessRule rule = new FileSystemAccessRule(LOGON_USER_NAME,
FileSystemRights.FullControl, InheritanceFlags.ContainerInherit |
InheritanceFlags.ObjectInherit, PropagationFlags.InheritOnly,
AccessControlType.Allow);
DirectorySecurity security = new DirectorySecurity();
security.SetAccessRule(rule);
Directory.CreateDirectory(dir);
Directory.SetAccessControl(dir, security);
これにより、管理者として作成したすべての子フォルダーにファイルのアクセス許可が正しく設定されます。ただし、dir
フォルダー自体にアクセス許可を設定するわけではありません。私は継承と伝播のためにかなりの数の順列をいじりましたが、喜びはありませんでした。
たとえば、私は持っています:
dir = %programfiles%\Test
test ( %programfiles%\Test\SubFolder
) にフォルダを作成した場合、ユーザーには完全なアクセス許可が割り当てられていますが、 に対する完全なアクセス許可はありません%programfiles%\Test
。これは非常に面倒です。ユーザーに、Test ディレクトリに対しても何を行うにも完全なアクセス許可を与えたいからです。
レジストリのアクセス許可に関して同様の問題が発生していますが、1 つを解決できれば、未解決の問題の両方を解決できると思います。
これを解決する方法を知っている人はいますか?
よろしく
トリス