如何授予我的C#应用程序管理权限?清单文件

如何授予我的C#应用程序管理权限?清单文件,c#,permissions,admin,manifest,rights,C#,Permissions,Admin,Manifest,Rights,我的C#应用程序使用win32#U networkingadapterconfig时遇到一些问题。问题是,当我在没有管理员权限的用户上使用应用程序时,我无法使用win32_networkingadapterconfig中的更改函数。我曾尝试“以管理员身份运行”,但没有成功。我尝试在trustInfo部分创建一个包含以下内容的文件: <security> <applicationRequestMinimum> <PermissionSet class="S

我的C#应用程序使用win32#U 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安全设置设置为完全信任。我做错了什么?

你的代码片段中有一个“信任信息”。让它看起来像这样:

<?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>

您的代码片段中挂着一个“信任信息”。让它看起来像这样:

<?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并请求管理员权限

应用程序可能会启动,但稍后会失败

可能的问题2
由于需要程序集信息,清单中的其他位置可能有问题。张贴你的全部清单会有帮助

可能的问题3

您已经添加了UAC升级不需要的
applicationRequestMinimum
节点。也许值得放下它再试一次。

有许多可能的问题,我已经按我认为不太可能的顺序列出了

可能的问题1
您的UAC设置是什么?如中所述,如果您已禁用UAC并请求管理员权限

应用程序可能会启动,但稍后会失败

可能的问题2
由于需要程序集信息,清单中的其他位置可能有问题。张贴你的全部清单会有帮助

可能的问题3

您已经添加了UAC升级不需要的
applicationRequestMinimum
节点。也许值得放下它再试一次。

是的,当我不得不在这里添加它时,这只是一个c/p失败,对不起!我很确定Windows也不允许您跨管理/非管理安全边界重定向标准输入/输出/错误。你必须找到一种不同的方法来获取以管理员身份运行的程序的输出-引用:好吧,这当然是想要使用这样的清单的一个原因。是的,当我不得不将它添加到这里时,那只是一个c/p失败,对不起!我很确定Windows也不允许您跨管理/非管理安全边界重定向标准输入/输出/错误。您必须找到一种不同的方法来获取以管理员身份运行的程序的输出-引用:当然,这也是希望使用类似清单的原因之一。ClickOnce应用程序不支持管理员级别提升。但是,我对独立EXE也有同样的问题,它也不能提升。ClickOnce应用程序不支持管理员级别的提升。但是,我对独立的EXE也有同样的问题,它也不能提升。我很确定Windows也不允许您跨管理/非管理安全边界重定向标准输入/输出/错误。您必须找到一种不同的方式来获取以管理员身份运行的程序的输出:我非常确定Windows也不允许您跨管理员/非管理员安全边界重定向标准输入/输出/错误。您必须找到一种不同的方法来获取以管理员参考身份运行的程序的输出: