В Vista, Windows 7 и более поздних версиях был добавлен механизм безопасности под названием UAC (User Account Control), и если UAC включён, даже если пользователь входит с правами администратора, его приложения не могут записывать данные в системный каталог, системный реестр и другие настройки, которые по умолчанию могут повлиять на нормальную работу системы. Этот механизм значительно повышает безопасность системы, но для разработчиков приложений мы не можем заставить пользователей отключать UAC, но иногда приложение должно работать в режиме администратора, как выполнить такую функцию? Вот как программа на C# реализует, предлагая пользователю запускаться с правами администратора. В этом примере программа WinForm демонстрирует, что новый проект генерируется и соответственно модифицируется: Метод 1: Запуск через System.Diagnostics.Process.Start(): Метод реализации: Измените файл программы, сгенерированный по умолчанию, и изменённый код выглядит следующим образом: Поскольку код уже был прокомментирован, подробности не будут; Эффект: Поскольку он запускается вызовом внешнего вызова System.Diagnostics.Process.Start(), при прямом запуске через VS VS не будет требовать права администратора, а только самой программе нужны права администратора, что отличается от программы, генерирующей приложение. Это главное отличие от реализации метода 2. Метод 2: Добавив файл манифеста приложения: В разделе Project Add New Artem выберите Application Manifest File и нажмите кнопку Add После добавления файл app.manifest открывается по умолчанию, который будет: Изменено на: Затем откройте свойства проекта и измените манифест во вкладке «Ресурсы» на новый app.manifest. Перестройте проект, и при повторном открытии программы вам попросят запустить с правами администратора. Обратите внимание, что если вы начнёте отладку в VS, вам будет предложено, что для этой задачи требуется повышенные права для приложения. Как показано ниже: Выберите «Перезапустить» с другими учетными данными, чтобы сделать это. Метод 3: Напрямую изменить свойства файла программы Кликните правой кнопкой мыши по файлу программы во вкладке «Совместимость» в диалоговом окне «Свойства», которое появляется Отметьте «Запустить эту программу от имени администратора».
|