レジストリへ重要なデータを書き込みたいのですが、その際、書き込んだキーに対してアクセス権を設定することは可能でしょうか?
また、どうやったらそれが実現するのでしょうか?
レジストリエディタ等で弄られると困るデータなので、作成したアプリケーションからしか変更がきかないようにしたいのです。
レジストリ操作はRegistryクラスからそれぞれRegistryKey.CreateSubKeyメソッドを使うことでキーの作成、アクセス権の設定を行うことができます。
しかしアクセス権の設定は.NET2.0以降からしかサポートしていないようですので、.NET1.0しか使うことのできないVC#.NETでは使用できません。サポートのあるVC#2005以降を使う必要があります。
以下は該当のクラスメソッドのサイトになります。
http://msdn.microsoft.com/ja-jp/library/microsoft.win32.registry...
やろうとしていることは不可能です。
レジストリに設定できるアクセス権は、ユーザーアカウント単位であり、アプリケーションごとに設定する機能はWindowsにはありません。
基本的にAdministrator権限があればレジストリエディタなどでアクセス権自体を変更することができてしまい、それは防げません。
またVC#.NETアプリからアクセス権の設定ができると言うことは、そのアプリが動作しているユーザーアカウントであればレジストリエディタ含め他のアプリからでもそのレジストリにアクセスできてしまうことになります。
ご回答ありがとうございます。
そうですか。。。
不可能なところは割り切るようにします。
ご回答ありがとうございます。
質問の内容がおかしかったようです。
開発環境はVC#2008です。
なのでアクセス制御の設定を行うことが出来ました。
しかしながら、レジストリエディタでアクセス許可を追加すると編集・削除が出来てしまいます。
削除されると非常に困ります。
いい対策はないでしょうか?