requestedExecutionLevel requireAdministrator没有按预期工作

时间:2014-04-15 09:05:27

标签: .net manifest .net-assembly access-rights

我有一个app.manifest文件如下:

<?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>
  <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
    <application>      
    </application>
  </compatibility>  
</asmv1:assembly>

我希望只有管理员才能启动可执行文件,但它不会那样工作。几乎任何用户都可以启动它。我的应用程序有什么问题?我应该在哪里寻找错误?

提前致谢。

2 个答案:

答案 0 :(得分:1)

我想,可以启动此应用程序的用户已禁用UAC。在这种情况下,它可以启动应用程序,但它会失败。 Step 6: Create and Embed an Application Manifest (UAC)(表:标准用户帐户的应用程序启动行为)

答案 1 :(得分:0)

requireAdministrator需要应用程序的管理员权限,而不是&#34;管理员&#34;帐户启动它。在这种情况下,您可能希望编辑安全选项和属性,只允许指定的Windows帐户启动该文件。

所以看来你所有的&#34;其他&#34;用户位于Administrators组中。