私の VB.NET アプリケーションは、アクセスが制限されたディレクトリのツリーを構築します。
アクセスは、通常のユーザーが既存のツリーを削除または名前変更できないようにする必要があります。ただし、ユーザーはツリーのどこにでも新しいファイル/フォルダーを追加できます。ユーザーが作成したファイル/フォルダーは、すべてのユーザーが完全に変更できる必要があります。
私が抱えている問題は、アプリによって作成されたファイル/フォルダーを変更できないようにアクセス セットを取得することですが、ユーザーによって作成されたファイル/フォルダーはすべてのユーザーによって変更される可能性があります。
現在起こっていることは、アプリケーションによって作成されたファイル/フォルダーが正しく動作することです。ただし、ユーザーが独自のファイル/フォルダーを作成すると、そのファイル/フォルダーのアクセス許可は現在のユーザーのみを一覧表示します。そのため、他のユーザー (またはアプリケーションで作成されたファイル/フォルダーに存在するシステム管理者でさえも) は、このユーザーが作成したファイル/フォルダーを表示または変更できません。
現在のコード: (ユーザーが自分でファイル/フォルダーを作成する場合、このコードは UserGroup または AdminGroup へのアクセスを許可せず、ファイル/フォルダーを作成したばかりのユーザーのみにアクセスを許可します)
FolderAcl.AddAccessRule(New FileSystemAccessRule(UserGroup,
FileSystemRights.ReadAndExecute,
InheritanceFlags.None, PropagationFlags.None,
AccessControlType.Allow))
FolderAcl.AddAccessRule(New FileSystemAccessRule(UserGroup,
FileSystemRights.Write,
InheritanceFlags.None, PropagationFlags.None,
AccessControlType.Allow))
FolderAcl.AddAccessRule(New FileSystemAccessRule(AdminGroup,
FileSystemRights.FullControl,
InheritanceFlags.None, PropagationFlags.None,
AccessControlType.Allow))
FolderAcl.SetAccessRuleProtection(True, False)
別の試み: (ユーザーが自分でファイル/フォルダーを作成すると、このコードは UserGroup と AdminGroup へのアクセスを許可しますが、ユーザーへのアクセスは許可しません。ユーザーは UserGroup にいますが、UserGroup には削除または変更の権限がないため、ユーザーがファイル/フォルダーを作成した場合、名前を付けることさえできません。)
' same code as above except...
InheritanceFlags.None ---> InheritanceFlags.Container or InheritanceFlags.Object
InheritanceFlags と PropagationFlags の他の組み合わせを試しましたが、まだうまくいきません。
何か案は?
ありがとう、マイク