.NET3.5を使用しています。特定のファイルと特定のレジストリキーにアクセスするメソッドがあるとします。メソッドを制限する宣言型のセキュリティ定義を追加して、指定されたファイルとレジストリキーにのみアクセスできるようにし、他には何もアクセスできないようにします。
私が試してみると:
[RegistryPermission(SecurityAction.PermitOnly, Read = "registry key path"]
[FileIOPermission(SecurityAction.PermitOnly, Read = "file path")]
...ファイルパスは読み取れますが、レジストリキーは読み取れません-セキュリティ例外が発生します。
私が使用する場合:
[RegistryPermission(SecurityAction.Demand, Read = "registry key path"]
[FileIOPermission(SecurityAction.Demand, Read = "file path")]
...ファイルとレジストリキーを読み取ることができますが、他のファイルにアクセスすることもできます。
この効果を達成するためにこれらの方法をどのように使用すべきかについて何かが欠けていますか?
編集:
レジストリキーにアクセスするために使用しているコードは次のとおりです。
RegistryKey rk = Registry.LocalMachine;
rk = rk.OpenSubKey("MyKey");
string registryVal = rk.GetValue("Test").ToString();
したがって、許可宣言は次のようになります。
[RegistryPermission(SecurityAction.PermitOnly, Read = @"HKEY_LOCAL_MACHINE\MyKey")]
ありがとう。