不错呦!smile@林凯西,确保“准备文件”中的几个文件都有安装,S...您好,看了您这篇帖子觉得很有帮助。但是有个问题想请...我的修改过了怎么还被恶意注册呢 @jjjjiiii 用PJ快9年了,主要是A...PJ3啊,貌似很少有人用PJ了,现在不是WP就是z...@332347365,我当时接入时错误码没有-10...楼主,ChkValue值应为-103是什么意思呢?...大哥 你最近能看到我发的信息,请跟我联系,我有个制...
C#应用程序自动请求以管理员身份运行
编辑:dnawo 日期:2016-10-24
Windows 7及更新版本的操作系统增加了 UAC(用户账户控制) 的安全机制,如果 UAC 被打开,用户即使以管理员权限登录,其应用程序默认情况下也无法对系统目录、系统注册表等可能影响系统正常运行的设置进行写操作,这个机制大大增强了系统的安全性。
但有时应用程序确实需要修改系统目录、系统注册表等操作,在确保安全的前提下,用户可以右键单击应用程序,选择"以管理员身份运行"运行即可:


但对应用程序开发者来说,我们不能强迫用户去关闭UAC,最好也不要让用户每次手工选择以管理员身份运行,有没有办法自动弹出请求以管理员身份运行,用户只需选择是或否呢?
可以实现,给C#应用程序项目新建一个应用程序清单文件(app.manifest),然后将清单文件中 Windows 用户帐户控制级别由默认的asInvoker改为requireAdministrator,重新生成项目即可:

但有时应用程序确实需要修改系统目录、系统注册表等操作,在确保安全的前提下,用户可以右键单击应用程序,选择"以管理员身份运行"运行即可:


但对应用程序开发者来说,我们不能强迫用户去关闭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>
<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 | 引用: 0 | 查看次数: 4622
发表评论
请登录后再发表评论!