博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
以管理员身份运行应用程序
阅读量:5063 次
发布时间:2019-06-12

本文共 1971 字,大约阅读时间需要 6 分钟。

  在 Vista 和 Windows 7 及更新版本的操作系统,增加了 UAC (用户账户控制) 的安全机制,如果 UAC 被打开,用户即使以管理员权限登录,其应用程序默认情况下也无法对系统目录、系统注册表等可能影响系统正常运行的设置进行写操作。这个机制大大增强了系统的安全性,但对应用程序开发者来说,我们不能强迫用户去关闭 UAC ,但有时我们开发的应用程序又需要以 Administrator 的方式运行,这就需要启用 ClickOnce 安全设置。

  首先打开解决方案资源管理器中的 Properties 。在左侧标签栏中选择”安全性“选项,并选择”启用 ClickOnce 安全设置“。

 

  接着更改 app.manifest 。打开 Properties 下的 app.manifest ,可以看到许多关于程序启动的配置。其中有一段是这样的:

  我们可以看到这个配置中有一个 requestedExecutionLevel 项,这个项用于配置当前应用请求的执行权限级别。这个项有3个值可供选择,如下表所示:

Value Description Comment
asInvoker The application runs with the same access token as the parent process. Recommended for standard user applications. Do refractoring with internal elevation points, as per the guidance provided earlier in this document.
highestAvailable The application runs with the highest privileges the current user can obtain. Recommended for mixed-mode applications. Plan to refractor the application in a future release.
requireAdministrator The application runs only for administrators and requires that the application be launched with the full access token of an administrator. Recommended for administrator only applications. Internal elevation points are not needed. The application is already running elevated.
  1. asInvoker :以当前的权限运行。

  2. highestAvailable: 以当前用户可以获得的最高权限运行。

  3. requireAdministrator: 仅以系统管理员权限运行。

  默认情况下是 asInvoker。

  highestAvailable 和 requireAdministrator 这两个选项的区别在于,如果我们不是以管理员帐号登录,那么如果应用程序设置为 requireAdministrator ,那么应用程序就直接运行失败,无法启动。而如果设置为 highestAvailable ,则应用程序可以运行成功,但是是以当前帐号的权限运行而不是系统管理员权限运行。如果我们希望程序在非管理员帐号登录时也可以运行(这种情况下应该某些功能受限制) ,那么建议采用 highestAvailable 来配置。

  所以,只要把设定启动权限的一行:

  改为  

  就可以以管理员权限启动了。 

   还有一种方法判断是否已管理员身份启动,如果返回为 true 则为管理员身份启动:

public static bool IsAdministrator(){    return new System.Security.Principal.WindowsPrincipal(System.Security.Principal.WindowsIdentity.GetCurrent()).IsInRole(System.Security.Principal.WindowsBuiltInRole.Administrator);}

转载于:https://www.cnblogs.com/Bita/p/5572319.html

你可能感兴趣的文章
BZOJ.1071.[SCOI2007]组队(思路)
查看>>
hihocoder 1310岛屿(dfs,一个搜索技巧)
查看>>
[ONTAK2010]Peaks
查看>>
poj 1159 dp回文串
查看>>
iOS10 UI教程视图的绘制与视图控制器和视图
查看>>
tpc-ds99 工具使用
查看>>
第三次作业
查看>>
XML文件的写,集合XML序列化(写)。XML文件的读,递归遍历
查看>>
BZOJ1055: [HAOI2008]玩具取名
查看>>
JavaScript数组
查看>>
Luogu2792 JSOI2008 小店购物 最小树形图
查看>>
LOJ2014 SCOI2016 萌萌哒 并查集、ST表优化连边
查看>>
CF1097G Vladislav and a Great Legend 组合、树形背包
查看>>
POJ3184 Ikki's Story I - Road Reconstruction(最大流)
查看>>
FZU2219 StarCraft(哈夫曼树)
查看>>
转载:送给和我一样曾经浮躁过的PHP程序猿
查看>>
easyui获取行,js的eval函数转对象
查看>>
机器学习资料
查看>>
【数据挖掘】降维(PCA、流形学习)
查看>>
pku 1639 Picnic Planning 最小度限制生成树
查看>>