欢迎光临

木子屋

标题: C#应用程序自动请求以管理员身份运行

作者: dnawo

日期: 2016-10-24 11:17 PM

分类: Win编程

内容: Windows 7及更新版本的操作系统增加了 UAC(用户账户控制) 的安全机制，如果 UAC 被打开，用户即使以管理员权限登录，其应用程序默认情况下也无法对系统目录、系统注册表等可能影响系统正常运行的设置进行写操作，这个机制大大增强了系统的安全性。
但有时应用程序确实需要修改系统目录、系统注册表等操作，在确保安全的前提下，用户可以右键单击应用程序，选择"以管理员身份运行"运行即可：
但对应用程序开发者来说，我们不能强迫用户去关闭UAC，最好也不要让用户每次手工选择以管理员身份运行，有没有办法自动弹出请求以管理员身份运行，用户只需选择是或否呢？
可以实现，给C#应用程序项目新建一个应用程序清单文件(app.manifest)，然后将清单文件中 Windows 用户帐户控制级别由默认的asInvoker改为requireAdministrator，重新生成项目即可：
复制内容到剪贴板 程序代码<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
<!-- UAC 清单选项
如果想要更改 Windows 用户帐户控制级别，请使用
以下节点之一替换 requestedExecutionLevel 节点。n
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
<requestedExecutionLevel level="highestAvailable" uiAccess="false" />
指定 requestedExecutionLevel 元素将禁用文件和注册表虚拟化。
如果你的应用程序需要此虚拟化来实现向后兼容性，则删除此
元素。
-->
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
</requestedPrivileges>
</security>
</trustInfo>

+ 查看当前日志评论 (0)

登录

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 1.553 ms

返回

标题: C#应用程序自动请求以管理员身份运行

你没有权限发表评论

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 1.553 ms

返回

暂无评论

返回

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 3.058 ms

返回