.netcore 控制台程序,在window操作系统中,怎么获取管理员权限运行此程序

在.NET Core控制台程序中设置管理员权限运行需要以下步骤:

  1. 在项目的app.manifest文件中指定管理员权限:

app.manifest文件设置为嵌入式资源

  1. 在程序中获取管理员权限:
csharp 复制代码
static void Main(string[] args) 
{ 
    var identity = WindowsIdentity.GetCurrent();
    var principal = new WindowsPrincipal(identity);
 
    if (principal.IsInRole(WindowsBuiltInRole.Administrator)) 
    {
        // 程序以管理员权限运行
    }
    else 
    {
        // 以非管理员权限运行,需要重新启动程序
        var startInfo = new ProcessStartInfo();
        startInfo.FileName = Assembly.GetExecutingAssembly().Location;
        startInfo.Verb = "runas";
        Process.Start(startInfo);
        return;
    }
 
    // 程序正常逻辑
}
  1. 运行程序,当程序以非管理员权限运行时,Windows会弹出一个用户账户控制(UAC)提示框确认是否允许程序以管理员权限运行。用户确认之后,程序即可以管理员权限运行。

注意:由于需要在app.manifest中指定管理员权限,因此程序需要重新生成和发布。在程序运行时无法动态获取管理员权限。

相关推荐
清风与日月1 天前
Yitter.IdGenerator:高性能分布式唯一ID生成器详解
分布式·c#·.net·.netcore
Lost of 程序猿4 天前
ASP.NET Core 后台任务全景:从 BackgroundService 到 Channel 队列,再到分布式调度
后端·asp.net·.netcore
宝桥南山5 天前
Blazor Web Assembly - 体验一下Authentication State从Server共享给Client
microsoft·微软·c#·asp.net·.net·.netcore
宝桥南山14 天前
Microsoft Agent Framework(.NET) - 尝试一下从MCP Server上获取Agent Skills
ai·微软·c#·aigc·.net·.netcore
海盗123423 天前
微软技术周报 ——2026-08-03
后端·python·microsoft·c#·.netcore
啊这啊这 六弦之首1 个月前
.NET Core跨平台的奥秘[中篇]:复用之殇
.netcore
心念枕惊1 个月前
.NET CORE 授权进阶-角色、策略与动态权限实现
java·前端·.netcore
完美火龙篇 四月的友1 个月前
通俗易懂,什么是.NET?什么是.NET Framework?什么是.NET Core?
.net·.netcore
时代的狂2 个月前
如何理解 C# 的 async 和 await
c#·.netcore·async·await
尼米棕熊2 个月前
.NET CORE认证模块-注册方案与请求认证探究
.netcore