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

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

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

    <requestedExecutionLevel level="requireAdministrator" />

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中指定管理员权限,因此程序需要重新生成和发布。在程序运行时无法动态获取管理员权限。

相关推荐
sky-stars1 小时前
.NET 泛型编程(泛型类、泛型方法、泛型接口、泛型委托、泛型约束)
c#·.net·.netcore
The Sheep 20235 小时前
.NetCoreMVC 开发网页使用sass
.netcore·sass
宝桥南山1 天前
.NET10 - 尝试一下Blazor Web Assembly Standalone App的fingerprint新特性
microsoft·微软·c#·asp.net·.net·.netcore
刚子编程3 天前
ASP.NET Core Blazor 核心功能一:Blazor依赖注入与状态管理指南
开发语言·.netcore·blazor
是萝卜干呀3 天前
Backend - HTTP请求的常用返回类型(asp .net core MVC)
http·c#·.netcore·iactionresult
精神小伙就是猛3 天前
.Net Core基于EasyCore.EventBus实现事件总线
微服务·.netcore
sky-stars5 天前
Visual Studio 2022 安装使用:Entity Framework Core
asp.net·.netcore·visual studio
宝桥南山6 天前
.NET - .NET Aspire的Command-Line和GitHub Copilot
microsoft·微软·c#·asp.net·.net·.netcore
刚子编程8 天前
ASP.NET Core Blazor 路由配置和导航
服务器·javascript·.netcore·blazor
忧郁的蛋~10 天前
.NET实现多任务异步与并行处理的详细步骤
后端·c#·asp.net·.net·.netcore