Проверьте разрешение реестра без исключения

У меня есть такой код

<pre><code>try { RegistryKey regKey = Registry.LocalMachine.CreateSubKey("SOFTWARE\\xxxx\\yyyyy"); // more code } catch { } </code></pre>

Я неТ не нравится использование пустого блока catch. Но это'полезно, потому что если пользователь неУ него нет прав доступа к реестру, ничего не нужно делать.

Этот фрагмент кода вызывается много раз, и, помимо плохой практики, я думаю, что он имеет низкую производительность.

я искал способ проверить разрешения реестра, прежде чем пытаться получить к нему доступ, но единственный способ, которым ямы нашли, чтобы сделать этопроверка на исключение с

RegistryPermission.Demand()

и проверьте исключение. Так что это не дает мне никакого преимущества при первоначальном подходе ».

Есть ли способ проверить наличие разрешений на доступ к реестру без искусственного сброса или проверки исключений?

Редактировать:

Похоже, предпочтительным способом .NET является попытка получить доступ к ресурсу и проверить наличие исключений. В статье, на которую указал Янник, показано, насколько сложно справиться с моделью безопасности Windows, отыскивая нужный доступ вручную. Итак, что яЯ собираюсь немного изменить этот код, чтобы он только один раз проверял доступ (перехватывает исключение) и сохранял эту информацию, вместо того, чтобы постоянно выдавать исключения. Это имеет тот недостаток, что если пользователь изменяет настройки безопасности »на лету"код будет продолжать запрещать доступ к реестру. Тем не менее, это предпочтительнее, если нетt простой и понятный способ проверки доступа.

Ответы на вопрос(1)

Ваш ответ на вопрос