Я использую .NET 3.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")]
... позволяет читать файл и раздел реестра, но также позволяет получить доступ к другим файлам.
Я что-то упускаю из-за того, как использовать эти методы для достижения этого эффекта?
Edit:
Код, который я использую для доступа к разделу реестра:
RegistryKey rk = Registry.LocalMachine;
rk = rk.OpenSubKey("MyKey");
string registryVal = rk.GetValue("Test").ToString();
и, следовательно, декларация разрешения:
[RegistryPermission(SecurityAction.PermitOnly, Read = @"HKEY_LOCAL_MACHINE\MyKey")]
Спасибо.