[c#] Как заставить приложение .NET работать под управлением администратора?



4 Answers

Добавление элемента requestExecutionLevel к вашему манифесту - это только половина битвы; вы должны помнить, что UAC можно отключить. Если это так, вам нужно выполнить проверку старого школьного пути и установить диалоговое окно с ошибкой, если пользователь не является администратором
(вызовите IsInRole(WindowsBuiltInRole.Administrator) вашего потока).

Question

Как только моя программа установлена ​​на клиентской машине, как заставить мою программу запускаться как администратор в Windows 7?







Согласно

<requestedExecutionLevel level="highestAvailable" uiAccess="false" />

вам нужно добавить манифест приложения, если у вас его еще нет или вы не знаете, как его добавить. Поскольку некоторые проекты автоматически не добавляют отдельный файл манифеста, сначала перейдите к свойствам проекта, перейдите на вкладку « Приложение » и убедитесь, что ваш проект не исключает манифест в нижней части крана.

  • Затем щелкните правой кнопкой мыши проект
  • Добавить новый элемент
  • Наконец, найдите и нажмите Файл манифеста приложения



Во время работы над Visual Studio 2008 щелкните правой кнопкой мыши Project -> Add New Item а затем выберите Application Manifest File .

В файле манифеста вы найдете тег requestedExecutionLevel , и вы можете установить уровень в три значения:

<requestedExecutionLevel level="asInvoker" uiAccess="false" />

ИЛИ

<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />

ИЛИ

<requestedExecutionLevel level="highestAvailable" uiAccess="false" />

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




Вы можете создать манифест с помощью параметров безопасности ClickOnce, а затем отключить его:

Right click on the Project -> Properties -> Security -> Enable ClickOnce Security Settings

После того, как вы щелкнете по нему, файл будет создан в папке свойств проекта под названием app.manifest после его создания, вы можете снять флажок « Enable ClickOnce Security Settings

Откройте этот файл и измените эту строку:

<requestedExecutionLevel level="asInvoker" uiAccess="false" />

чтобы:

 <requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />

Это заставит программу требовать права администратора.




Related