Как передать административные права моему приложению 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. Возможно, стоит бросить это и попробовать снова.