【C#】添加管理员权限 判断程序是否以管理员身份运行
一、添加管理员权限
1、打开ClickOnce
项目-属性-安全性
把√打上
2、修改权限文件app.manifest
项目目录-Properties-app.manifest
把<requestedExecutionLevel level="asInvoker" uiAccess="false" />中的asInvoker
修改成 requireAdministrator
如果你发现编译的时候出现报错:
严重性 代码 说明 项目 文件 行 禁止显示状态
错误 ClickOnce 不支持请求执行级别“requireAdministrator”。
第一步的时候先编译一遍
第二步不要在项目里面改,在生成的目录里面改,然后进把项目的ClickOnce关闭,即可
(这样app.manifest文件会一直在生成的目录,也不用担心被替换掉)
二、判断管理员身份运行
/// <summary>
/// 确定当前主体是否属于具有指定 Administrator 的 Windows 用户组
/// </summary>
/// <returns>如果当前主体是指定的 Administrator 用户组的成员,则为 true;否则为 false。</returns>
public static bool IsAdministrator()
{
bool result;
try
{
WindowsIdentity identity = WindowsIdentity.GetCurrent();
WindowsPrincipal principal = new WindowsPrincipal(identity);
result = principal.IsInRole(WindowsBuiltInRole.Administrator);
//AppDomain domain = Thread.GetDomain();
//domain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal);
//WindowsPrincipal windowsPrincipal = (WindowsPrincipal)Thread.CurrentPrincipal;
//result = windowsPrincipal.IsInRole(WindowsBuiltInRole.Administrator);
}
catch
{
result = false;
}
return result;
}
本文出自《粉墨记忆》 => 《【C#】添加管理员权限 判断程序是否以管理员身份运行》
转载时请注明出处及相应链接,
本文地址:https://www.fmxk.ac.cn/?post=17
WRITTEN BY
一名软件开发者,平时把自己的学习成果放在博客上面,也会放一些自己在用的小工具,有问题大家可以留言,我们一起讨论哦!