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

相关推荐
江沉晚呤时6 小时前
SQL Server 事务详解:概念、特性、隔离级别与实践
java·数据库·oracle·c#·.netcore
[email protected]19 小时前
ASP.NET Core SignalR 身份认证集成指南(Identity + JWT)
后端·中间件·asp.net·.netcore
[email protected]1 天前
ASP.NET Core SignalR的基本使用
后端·asp.net·.netcore
[email protected]2 天前
Asp.Net Core FluentValidation校验框架
后端·asp.net·.netcore
[email protected]2 天前
Asp.Net Core 如何配置在Swagger中带JWT报文头
后端·asp.net·.netcore
[email protected]2 天前
Asp.Net Core SignalR的分布式部署
分布式·后端·asp.net·.netcore
江沉晚呤时2 天前
深入解析 Dotnet-Boxed.Framework:提升 .NET 开发效率的利器
深度学习·c#·.net·.netcore
yuanpan3 天前
在 RedHat 系统(RHEL 7/8/9)中安装 pythonnet 和 .NET Core 的完整指南
.netcore
yuanpan3 天前
同为.net/C#的跨平台运行时的mono和.net Core有什么区别?
c#·.net·.netcore
MoFe14 天前
【.net core】SkiaSharp 如何在Linux上实现
linux·服务器·.netcore