Как передать административные права моему приложению C#? файл манифеста

У меня возникли некоторые проблемы с моим приложением C#, которое использует win32_networkingadapterconfig. Проблема в том, что я не могу использовать изменяющие функции в win32_networkingadapterconfig, когда использую приложение для пользователя, у которого нет прав администратора. Я пытался "работать от имени администратора", но не повезло. И я попытался создать манифест с этим содержимым в части trustInfo:

<security>
  <applicationRequestMinimum>
    <PermissionSet class="System.Security.PermissionSet" version="1" Unrestricted="true" ID="Custom" SameSite="site" />
    <defaultAssemblyRequest permissionSetReference="Custom" />
  </applicationRequestMinimum>
  <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">

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

  </requestedPrivileges>
</security>

Включить настройки безопасности Clickone установлены на полное доверие. Что я делаю неправильно?

2 ответа

В вашем фрагменте висит информация о доверии. Сделайте так, чтобы это выглядело так:

<?xml version="1.0" encoding="utf-8"?>
<asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
    <security>
      <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
        <requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />
      </requestedPrivileges>
    </security>
  </trustInfo>
</asmv1:assembly>

Существует ряд возможных проблем, которые я перечислил в том порядке, в котором, я подозреваю, вероятность менее вероятна.

Возможная проблема 1
Каковы ваши настройки UAC? Как подробно описано в разделе Создание и встраивание манифеста приложения (UAC), если UAC отключен и вы запрашиваете права администратора,

Приложение может запуститься, но позже не получится

Возможная проблема 2
В манифесте может быть что-то не так, поскольку требуется информация о сборке. Размещение всего вашего манифеста поможет.

Возможная проблема 3
Вы добавили applicationRequestMinimum узел, который не требуется для эскалации UAC. Возможно, стоит бросить это и попробовать снова.

Другие вопросы по тегам