如何强制我的.NET应用程序以管理员身份运行?

如何强制我的.NET应用程序以管理员身份运行?

一旦我的程序安装在客户端计算机上,如何强制我的程序在Windows 7上以管理员身份运行?



小怪兽爱吃肉
浏览 671回答 4
4回答

慕少森

您将要修改嵌入在程序中的清单。这适用于Visual Studio 2008及更高版本:Project + Add New Item,选择“Application Manifest File”。将<requestedExecutionLevel>元素更改为:&nbsp;<requestedExecutionLevel&nbsp;level="requireAdministrator"&nbsp;uiAccess="false"&nbsp;/>用户在启动程序时会收到UAC提示。明智地使用;&nbsp;他们的耐心很快就会消失。

月关宝盒

在requestedExecutionLevel清单中添加元素只是战斗的一半;&nbsp;你必须记住UAC可以关闭。如果是,则必须执行旧学校方式的检查并在用户不是管理员时调用错误对话框(IsInRole(WindowsBuiltInRole.Administrator)在线程上调用CurrentPrincipal)。

哔哔one

我实现了一些手动执行的代码:using&nbsp;System.Security.Principal;public&nbsp;bool&nbsp;IsUserAdministrator(){ &nbsp;&nbsp;&nbsp;&nbsp;bool&nbsp;isAdmin; &nbsp;&nbsp;&nbsp;&nbsp;try &nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WindowsIdentity&nbsp;user&nbsp;=&nbsp;WindowsIdentity.GetCurrent(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WindowsPrincipal&nbsp;principal&nbsp;=&nbsp;new&nbsp;WindowsPrincipal(user); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;isAdmin&nbsp;=&nbsp;principal.IsInRole(WindowsBuiltInRole.Administrator); &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;catch&nbsp;(UnauthorizedAccessException&nbsp;ex) &nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;isAdmin&nbsp;=&nbsp;false; &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;catch&nbsp;(Exception&nbsp;ex) &nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;isAdmin&nbsp;=&nbsp;false; &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;isAdmin;}

MMMHUHU

您可以在EXE文件中嵌入清单文件,这将导致Windows(7或更高版本)始终以管理员身份运行程序。您可以在步骤6:创建和嵌入应用程序清单(UAC)(MSDN)中找到更多详细信息。
打开App,查看更多内容
随时随地看视频慕课网APP