Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 36267|Відповідь: 3

[WinForm] Програми C# працюють з привілеями адміністратора

[Копіювати посилання]
Опубліковано 09.10.2016 09:14:38 | | | |
У 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: Безпосередньо змінити властивості файлу програми
Клацніть правою кнопкою миші на файлі програми у вкладці «Сумісність» у діалоговому вікні «Властивості», яке з'являється
Позначте «Запустити цю програму як адміністратор».







Попередній:{"Елемент '_id' не збігається з жодним полем чи властивістю класу."}
Наступний:.NET/C# 4 способи реалізації запитів MongoDB та нечітких запитів [з вихідним кодом]
 Орендодавець| Опубліковано 09.10.2016 09:15:27 |
Визначте, чи працює програма як адміністратор
Потрібно додати простори імен:
з використанням System.Security.Principal;


 Орендодавець| Опубліковано 26.01.2021 09:59:52 |
C# визначає, чи працює програма як адміністратор
https://www.itsvse.com/thread-3004-1-1.html
 Орендодавець| Опубліковано 13.10.2025 09:18:33 |
Додатки .NET Core запускаються як адміністратори на системах Windows, код виглядає так:


Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com