首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >WPF 设置管理员权限启动

WPF 设置管理员权限启动

作者头像
林德熙
发布于 2020-02-17 14:49:51
发布于 2020-02-17 14:49:51
3K0
举报
文章被收录于专栏:林德熙的博客林德熙的博客

在 dotnet 程序,可以通过清单文件设置管理员权限启动

通过下面代码可以判断当前的程序是管理员权限运行

代码语言:javascript
复制
            var identity = WindowsIdentity.GetCurrent();
            var principal = new WindowsPrincipal(identity);
            if (principal.IsInRole(WindowsBuiltInRole.Administrator))
            {
                // 当前正在以管理员权限运行。
            }

而设置软件启动权限是管理员权限可以添加清单文件,右击添加 App.manifest 文件,此时要求在 csproj 设置 <ApplicationManifest>App.manifest</ApplicationManifest> 才可以

代码语言:javascript
复制
  <PropertyGroup>
      <ApplicationManifest>App.manifest</ApplicationManifest>
  </PropertyGroup>

在 App.manifest 文件将 requestedPrivileges 替换下面代码

代码语言:javascript
复制
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
    <security>
      <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
        <!-- UAC 清单选项
             如果想要更改 Windows 用户帐户控制级别,请使用
             以下节点之一替换 requestedExecutionLevel 节点。n
        <requestedExecutionLevel  level="asInvoker" uiAccess="false" />
        <requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />
        <requestedExecutionLevel  level="highestAvailable" uiAccess="false" />

            指定 requestedExecutionLevel 元素将禁用文件和注册表虚拟化。
            如果你的应用程序需要此虚拟化来实现向后兼容性,则删除此
            元素。
        -->
        <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
      </requestedPrivileges>
    </security>
  </trustInfo>

如果需要在管理员权限使用降低权限运行请看 dotnet 判断程序当前使用管理员运行降低权使用普通权限运行

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档