添加应用程序清单以确保在Windows XP,Vista和7上提升权限的可靠程度如何?

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

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

这在Windows 7上运行良好,但我没有访问XP和Vista,所以不能告诉。

Solutions Collecting From Web of "添加应用程序清单以确保在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不处理requestedPrivileges节点,并没有任何种类的UAC机制。

Windows Vista引入了UAC和设置requestedExecutionLevel的能力。


Windows XP的标准帐户是严格的,没有提升管理任务的机制来执行重新登录。

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

是的,该清单可确保属于管理员组的用户在Vista上正常提升,并在接受UAC提示时提升。

它不会做的是给一个属于那个组权限的用户。 就像它在XP中所做的一样,但也在后来的版本中。 网站管理员可能会给用户限制帐户。 没关系,他们当然不应该运行你的程序。 管理员不希望他们。 检查你是否给出了合理的诊断。 WindowsPrincipal.IsInRole(WindowsBuiltInRole.Administrator)让你检查.NET。