【C#】添加管理员权限 判断程序是否以管理员身份运行

一、添加管理员权限

1、打开ClickOnce

项目-属性-安全性

把√打上

C#打开ClickOnce.jpg


2、修改权限文件app.manifest

项目目录-Properties-app.manifest

<requestedExecutionLevel  level="asInvoker" uiAccess="false" />中的asInvoker

修改成 requireAdministrator 

修改app.manifest.jpg


如果你发现编译的时候出现报错:
严重性 代码 说明 项目 文件 禁止显示状态
错误 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

avatar


发表评论: