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

Вид: 36267|Ответ: 3

[WinForm] Программы C# работают с правами администратора

[Скопировать ссылку]
Опубликовано 09.10.2016 9: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 открывается по умолчанию, который будет:
Изменено на:
Затем откройте свойства проекта и измените манифест во вкладке «Ресурсы» на новый app.manifest.
Перестройте проект, и при повторном открытии программы вам попросят запустить с правами администратора.
Обратите внимание, что если вы начнёте отладку в VS, вам будет предложено, что для этой задачи требуется повышенные права для приложения. Как показано ниже:
Выберите «Перезапустить» с другими учетными данными, чтобы сделать это.
Метод 3: Напрямую изменить свойства файла программы
Кликните правой кнопкой мыши по файлу программы во вкладке «Совместимость» в диалоговом окне «Свойства», которое появляется
Отметьте «Запустить эту программу от имени администратора».







Предыдущий:{"Элемент '_id' не совпадает ни с одним полем или свойством класса."}
Следующий:.NET/C# 4 способа реализации запросов MongoDB и нечетких запросов [с исходным кодом]

Связанные публикации

 Хозяин| Опубликовано 09.10.2016 9:15:27 |
Определите, работает ли программа как администратор
Необходимо добавить пространства имён:
с использованием System.Security.Principal;


 Хозяин| Опубликовано 26.01.2021 9:59:52 |
C# определяет, работает ли программа как администратор
https://www.itsvse.com/thread-3004-1-1.html
 Хозяин| Опубликовано 13.10.2025 9:18:33 |
Приложения .NET Core запускаются как администраторы на системах Windows, код следующий:


Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com