添加应用程序清单以确保跨 Windows xp、vista 和 7 提升的权限的可靠性

本文关键字:权限 vista 可靠性 应用程序清单 确保 xp Windows 添加 | 更新日期: 2023-09-27 18:33:15

此方法有多稳定,以确保我的管理应用程序在启动时请求管理员权限:

<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
</requestedPrivileges>

这在Windows 7上运行良好,但我无法访问XP和Vista,所以无法判断。

添加应用程序清单以确保跨 Windows xp、vista 和 7 提升的权限的可靠性

通过指定该清单,您可以告诉 Windows(Vista 或 7),如果标准用户(以及启用了 UAC 的管理员)尝试执行此应用,则应显示 UAC 提示。如果没有提升,此应用将无法按预期工作。

Windows

Vista和Windows 7都可以正确处理这个问题,因为这就是UAC设计的原因。

对于 Windows XP,标准用户需要手动使用 runas 以管理员身份执行应用,而管理员用户可以直接运行它。Windows XP上没有UAC,它又回到了Windows开发人员长期以来熟悉的旧行为。

要测试 Windows XP,

您应该使用 Windows XP 模式,http://www.microsoft.com/windows/virtual-pc/download.aspx

Windows XP不处理请求的特权节点,并且没有任何类型的UAC机制。

UAC 和设置 requestExecutionLevel 的功能都是在 Windows Vista 中引入的。


Windows XP的标准帐户严格来说是这样,并且没有适当的提升机制来执行管理任务,除非再次登录。

因此,处理由于缺少XP权限而导致的错误的最佳做法只是显示有意义的错误消息。

是的

,该清单可确保属于管理员组的用户在接受 UAC 提示时在 Vista 和更高级别上得到适当的提升。

它不会为不属于该组的用户提供权限。 就像在XP中完成的方式一样,在以后的版本中也是如此。 站点管理员可以向用户授予受限帐户。 没关系,他们肯定不应该运行您的程序。 管理员不希望他们这样做。 请检查您是否给出了合理的诊断。 WindowsPrincipal.IsInRole(WindowsBuiltInRole.Administrator)允许您检查.NET。