C#プログラムでWindowsマシン上のローカルの既存のディレクトリを保護しようとしています。セキュリティ上の理由から、管理者グループのアカウントのみがこのフォルダーにアクセスできるようにします。既存のフォルダーは、私のプログラムが以前に作成したフォルダーであり、現在実行中のユーザーが所有するため、管理者グループの特権を追加してから、現在のユーザーの特権を削除する必要があります。
管理者グループの権限をフォルダに追加することはできますが、現在のユーザーの権限を削除する方法がわかりません。私は次のように管理者グループに権限を与えています:
DirectorySecurity directorySecurity = new DirectorySecurity();
IdentityReference adminId = new SecurityIdentifier(WellKnownSidType.BuiltinAdministratorsSid, null);
FileSystemAccessRule adminAccess = new FileSystemAccessRule(
adminId,
FileSystemRights.FullControl,
InheritanceFlags.ObjectInherit | InheritanceFlags.ContainerInherit,
PropagationFlags.None,
AccessControlType.Allow);
directorySecurity.AddAccessRule(adminAccess);
// set the owner and the group to admins
directorySecurity.SetOwner(adminId);
directorySecurity.SetGroup(adminId);
Directory.SetAccessControl("path-to-my-directory", directorySecurity);