如何保证我的WPF应用程序的永久管理员权限
本文关键字:管理员 权限 应用程序 何保证 我的 WPF | 更新日期: 2023-09-27 18:09:00
我已经阅读了很多关于Windows 7等中的UAC开发的文章,但我没有成功地找到我的问题的答案:如何保证我的应用程序始终"以管理员身份运行",我正在寻找一些代码片段或其他东西。任何帮助都将不胜感激。/请不要垃圾邮件:"你确定你需要这个特权和访问"-是的,我确定应用程序需要它们。
在你的应用中添加一个应用清单:
<security>
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
</requestedPrivileges>
</security>
这篇MSDN文章解释了如何对UAC友好:教你的应用程序很好地发挥Windows Vista用户帐户控制
Windows没有能力授予应用程序管理权限;权限由用户授予。
如果运行你的应用程序的用户没有管理权限,那么你的应用程序将没有管理权限。
程序不能因为程序希望而获得"保证永久"的管理员权限。用户必须被授予权限。
- 你可以设计你的应用程序不需要管理权限:)
- 您可以通知您的应用程序需要管理权限
- 与UAC关闭请求不能被执行:( 在请求上带有UAC的
- 可能不会 被执行:(
但是请求应用程序被授予管理权限是不可能的。
如果我理解正确,你的应用程序将是用户shell,也就是说,它将取代Windows资源管理器。在这种情况下,有多种方法可以绕过UAC,例如,通过使用凭据管理器捕获用户的凭据并使用它们创建新的令牌,或者通过挂钩LogonUser函数并捕获未修改的令牌。
然而,到目前为止最简单的方法是禁用UAC。除非用户将运行Internet Explorer或其他利用UAC沙箱的程序,否则在您的场景中可能没有理由让UAC处于打开状态。