C# 之 判断或设置以管理员身份运行程序

时间:2021-04-12 08:55:55

  一、判断程序是否以管理员权限运行

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

  

  二、设置程序获取管理员权限运行

  在开发以管理员身份运行的程序时,需要获取管理员权限,可通过如下设置使程序获取管理员权限来运行。

  1、在Visual Studio 中→解决方案资源管理器→右键项目名称→属性→“安全性”选项,勾选“ 启用ClickOnce安全设置 ”,如下图;

  C# 之 判断或设置以管理员身份运行程序

  2、此时,在项目下面会多出一个“app.manifest”的文件,打开此文件,

  C# 之 判断或设置以管理员身份运行程序

  1)找到代码段<requestedExecutionLevel level="asInvoker" uiAccess="false" />;

  C# 之 判断或设置以管理员身份运行程序

  2)将其改为:<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />;

  3、修改后,再次打开“属性--安全性”界面,

  将“启用ClickOnce安全设置”前面的勾去掉后再编译运行。 不然程序会报错无法运行。

  4、保存修改,重新编译运行程序。

  打开程序时,会提示“用户账户控制”来获取管理员权限运行,点击“是”则获取了管理员权限。