当前位置: 首页 > news >正文

.Net Core 生成管理员权限的应用程序

  • 创建一个ASP.NET Core Web API项目

  • 给解决方案设置一个名称

  • 选择一个目标框架,这里选择的是 .NET 8.0框架

  • 在Porperties文件夹中添加一个app.manifest文件

  • 设置app.manifest文件属性,生成操作设置为嵌入的资源

双击解决方案名称,编辑WebApplication22.csproj文件,在.csproj文件中加入一行代码

<ApplicationManifest>Properties\app.manifest</ApplicationManifest>

.csproj配置文件如下 

<Project Sdk="Microsoft.NET.Sdk.Web"><PropertyGroup><TargetFramework>net8.0</TargetFramework><Nullable>enable</Nullable><ImplicitUsings>enable</ImplicitUsings><ApplicationManifest>Properties\app.manifest</ApplicationManifest></PropertyGroup><ItemGroup><EmbeddedResource Include="Properties\app.manifest" /></ItemGroup><ItemGroup><PackageReference Include="Swashbuckle.AspNetCore" Version="6.4.0" /></ItemGroup>
</Project>

app.manifest文件配置如下

<?xml version="1.0" encoding="utf-8"?>
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1"><assemblyIdentity version="1.0.0.0" name="MyApplication.app" /><trustInfo xmlns="urn:schemas-microsoft-com:asm.v2"><security><requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3"><requestedExecutionLevel level="requireAdministrator" uiAccess="false" /></requestedPrivileges><applicationRequestMinimum><defaultAssemblyRequest permissionSetReference="Custom" /><PermissionSet class="System.Security.PermissionSet" version="1" Unrestricted="true" ID="Custom" SameSite="site" /></applicationRequestMinimum></security></trustInfo><compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1"><application></application></compatibility>
</assembly>

需要注意的是,需要把requestedExecutionLevel节点中的level值设置为“requireAdministrator”

  • 此时重新生成解决方案发现我们的exe程序就会有一个盾牌的标识,说明是成功设置为了管理员身份启动。

  • 另外我们可以在Program.cs文件中的Main方法中加入如下代码,用于判断程序是否以管理员身份运行:
var identity = WindowsIdentity.GetCurrent();
var principal = new WindowsPrincipal(identity);
if (principal.IsInRole(WindowsBuiltInRole.Administrator)) //必须是管理员身份运行
{//CreateHostBuilder(args).Build().Run();
}

附:

参考网址【搞懂.NET应用程序管理员权限:三种简单方法一网打尽_net 权限管理-CSDN博客】

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Linux--守护进程与会话
  • Open3D 特征点匹配(Python)
  • VB中如何实现Windows服务(Windows Service)
  • linux操作系统的引导和修复
  • Qt_多元素控件
  • IEEE-754 32位十六进制数 转换为十进制浮点数
  • 论文解读《NewsBench:一个评估中文新闻大型语言模型编辑能力的系统评估框架》
  • C语言的指针运算
  • AI教你学Python 第11天 : 局部变量与全局变量
  • Vert.x HttpClient调用后端服务时使用Idle Timeout和KeepAlive Timeout的行为分析
  • kubernetes 学习 尚硅谷
  • IMS 呼叫流程(详细)
  • window下idea中scala的配置
  • charles抓包flutter
  • 如何在 CentOS 6 上使用 RVM 安装 Ruby on Rails
  • [数据结构]链表的实现在PHP中
  • Android 控件背景颜色处理
  • android 一些 utils
  • httpie使用详解
  • interface和setter,getter
  • 看图轻松理解数据结构与算法系列(基于数组的栈)
  • 那些被忽略的 JavaScript 数组方法细节
  • 嵌入式文件系统
  • 如何邀请好友注册您的网站(模拟百度网盘)
  • 用 vue 组件自定义 v-model, 实现一个 Tab 组件。
  • ​总结MySQL 的一些知识点:MySQL 选择数据库​
  • # 再次尝试 连接失败_无线WiFi无法连接到网络怎么办【解决方法】
  • #1014 : Trie树
  • #Linux杂记--将Python3的源码编译为.so文件方法与Linux环境下的交叉编译方法
  • #Ubuntu(修改root信息)
  • #我与Java虚拟机的故事#连载17:我的Java技术水平有了一个本质的提升
  • $nextTick的使用场景介绍
  • (2)从源码角度聊聊Jetpack Navigator的工作流程
  • (2024.6.23)最新版MAVEN的安装和配置教程(超详细)
  • (3)nginx 配置(nginx.conf)
  • (a /b)*c的值
  • (附源码)springboot高校宿舍交电费系统 毕业设计031552
  • (含笔试题)深度解析数据在内存中的存储
  • (佳作)两轮平衡小车(原理图、PCB、程序源码、BOM等)
  • (七)Appdesigner-初步入门及常用组件的使用方法说明
  • (十二)springboot实战——SSE服务推送事件案例实现
  • (一) 初入MySQL 【认识和部署】
  • (一)Thymeleaf用法——Thymeleaf简介
  • (译) 函数式 JS #1:简介
  • (转)【Hibernate总结系列】使用举例
  • (转)nsfocus-绿盟科技笔试题目
  • *p++,*(p++),*++p,(*p)++区别?
  • .NET 6 Mysql Canal (CDC 增量同步,捕获变更数据) 案例版
  • .net CHARTING图表控件下载地址
  • .net core 客户端缓存、服务器端响应缓存、服务器内存缓存
  • .NET Framework Client Profile - a Subset of the .NET Framework Redistribution
  • .NET 跨平台图形库 SkiaSharp 基础应用
  • .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖
  • .net 使用$.ajax实现从前台调用后台方法(包含静态方法和非静态方法调用)
  • .vollhavhelp-V-XXXXXXXX勒索病毒的最新威胁:如何恢复您的数据?