У 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 відкривається за замовчуванням, що буде: Модифіковано на: Потім відкрийте властивості проєкту і змініть Маніфест у вкладці Ресурси у вкладці Applications на новий app.manifest. Перебудуйте проєкт, і коли ви знову відкриєте програму, вам запропонують запустити з правами адміністратора. Зверніть увагу, що якщо ви почнете налагодження у VS, вам буде запропоновано, що для цього завдання потрібно мати підвищені привілеї. Як показано нижче: Виберіть «Перезапуск» з іншими обліковими даними, щоб це зробити. Метод 3: Безпосередньо змінити властивості файлу програми Клацніть правою кнопкою миші на файлі програми у вкладці «Сумісність» у діалоговому вікні «Властивості», яке з'являється Позначте «Запустити цю програму як адміністратор».
|