前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >启动管理员进程

启动管理员进程

作者头像
用户1175783
发布2019-09-18 10:07:45
7770
发布2019-09-18 10:07:45
举报
文章被收录于专栏:用户1175783的专栏

# 启动管理员进程

当我们运行一个程序的时候有时需要提升到管理员权限,但是默认的C#程序的运行权限是当前用户的权限,那么怎么提升这个启动权限呢?

经过网上的一番搜索后,找到如下两种方式:

# 1. 通过应用程序清单文件实现(app.mainfest)

创建app.mainfest的两种办法:

  1. 第一种办法:

在项目的【Properties】上添加【新建项】,弹出窗口找到【应用程序清单文件】,最后【确定】。

  1. 第二种办法:

查看项目的【属性】,在属性页找到【安全性】,然后点击【启用ClickOnce安全设置】,然后保存(ctrl+s),你会发现Preperties目录下生成了app.mainfest文件,然后再取消【启用ClickOnce安全设置】的选中状态。

创建app.mainfest文件后,打开并编辑做以下修改: asInvoker改为requireAdministrator

# 2. 通过添加代码来实现

代码语言:javascript
复制
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Security.Principal;
using System.Windows.Forms;

namespace Test
{
    static class Program
    {
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);

            WindowsIdentity identity = WindowsIdentity.GetCurrent();
            WindowsPrincipal principal = new WindowsPrincipal(identity);
            //判断当前用户是否为管理员
            if (principal.IsInRole(WindowsBuiltInRole.Administrator))
            {
                //如果是管理员,则直接运行
                Application.Run(new Form1());
            }
            else
            {
                //创建启动对象
                ProcessStartInfo startInfo = new ProcessStartInfo();
                startInfo.UseShellExecute = true;
                startInfo.WorkingDirectory = Environment.CurrentDirectory;
                startInfo.FileName = Application.ExecutablePath;
                //设置启动动作,确保以管理员身份运行
                startInfo.Verb = "runas";
                Process.Start(startInfo);
                //退出               
                Application.Exit();
            }
        }
    }
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-04-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • # 启动管理员进程
  • # 1. 通过应用程序清单文件实现(app.mainfest)
  • # 2. 通过添加代码来实现
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档