доступ к реестру исключений безопасности, когда программа запускается как запланированное задание - PullRequest
0 голосов
/ 21 октября 2010

следующая маленькая строка вызывает исключение System.Security.SecurityException: Запрошенный доступ к реестру не разрешен:

RegistryKey _key = HKLM.OpenSubKey("path\\to\\my settings", false);

Теперь ... какой смысл некоторые спрашивают? Дело в том, что работает ТОЛЬКО при входе в систему . Исключение выдается, если программа запускается как запланированная задача и , никто не вошел в систему.

  • пользователь, выполняющий эту задачу, является локальным администратором
  • программа не запускается с сетевого ресурса, она находится на локальном диске
  • Я даже пытался установить Code Access Security
  • пользователь имеет право войти в систему как пакетное задание

У меня XP SP3 со всеми примененными патчами. Программа написана на C # .Net 2.0 (тоже тестировал 3.5)

Кто-нибудь знает, какой здесь смысл? Торстен

РЕДАКТИРОВАТЬ: см. http://gist.github.com/638576

Ответы [ 3 ]

0 голосов
/ 21 октября 2010

Можете ли вы адаптировать этот

WindowsPrincipal principal = new WindowsPrincipal(WindowsIdentity.GetCurrent());
string isAdmin = principal.IsInRole(WindowsBuiltInRole.Administrator) ? "Yes" : "No";

, чтобы убедиться, что процесс действительно подражает, когда нет текущего пользователя?

0 голосов
/ 22 октября 2010

Кажется, что это проблема этого конкретного компьютера. Я проверил его на другой рабочей станции, и он работает даже без прав администратора.

Я так и предполагал - программа работала годами без проблем ... В любом случае, спасибо всем!

0 голосов
/ 21 октября 2010

М-м-м-м-м ... похоже, тоже связано с проблемой авторизации. Вы пытались использовать API: OpenSubKey (...., RegistryKeyPermissionCheck), чтобы увидеть, если что-то изменится? Я думаю, это может быть связано с родительским ключом и его авторизацией.

Попробуйте увидеть: http://msdn.microsoft.com/it-it/library/microsoft.win32.registrykeypermissioncheck.aspx (на вашем языке). Я надеюсь, что это может помочь вам ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...