クライアントマシンでアクセスできる必要があるいくつかの重要な情報を使用してレジストリキーをロックダウンしようとしています。管理者以外のユーザーがこのキーにアクセスできるようにしたくありません。あなたが管理者であれば、私がキーに保存しているものよりも多くのダメージを与えることができます。
私が現在やろうとしていることはこれです:
//Allow access only to administrators and deny all rights to everyone else.
System.Security.AccessControl.RegistrySecurity acl =
new System.Security.AccessControl.RegistrySecurity();
acl.AddAccessRule(
new System.Security.AccessControl.RegistryAccessRule(
"Administrators",
System.Security.AccessControl.RegistryRights.FullControl,
System.Security.AccessControl.AccessControlType.Allow));
acl.AddAccessRule(
new System.Security.AccessControl.RegistryAccessRule(
"Everyone",
System.Security.AccessControl.RegistryRights.FullControl,
System.Security.AccessControl.AccessControlType.Deny));
//Prevent inherited read access from the software or company key allowing access.
acl.SetAccessRuleProtection(true, false);
MyKey.SetAccessControl(acl);
私がそれを正しく持っている場合、これはすべての人へのアクセスを拒否し、管理者グループのすべての人へのアクセスを明示的に許可し、継承されたすべてのアクセス許可が私のキーに適用されるのを防ぎますか?キーのACLを台無しにして削除できないようにする前に、それが機能するかどうかを確認したいのですが、キーの所有者も管理者グループに設定する必要がありますか?
PS:キーは、変更されただけでなく、管理者以外の人としても読み取れないことが非常に重要です。