• C# 程序默认使用管理员权限(转载)


    1、从A程序启动B程序,当B程序需要管理员权限的时候代码如下

    A程序里面启动B程序的代码如下

    ProcessStartInfo startInfo = new ProcessStartInfo();
    startInfo.FileName = "D:\B.exe"; //设置程序启动路径
    startInfo.WorkingDirectory = Environment.CurrentDirectory;//需要管理员权限这个不晓得是不是必须
    startInfo.Verb = "runas";//需要管理员权限必须有      
    startInfo.UseShellExecute = true;//需要管理员权限必须有      
    startInfo.WindowStyle = ProcessWindowStyle.Normal;
    Process.Start(startInfo);//启动程序

    关于这一点,主要就是要设置下面两个属性:

    startInfo.UseShellExecute = true;
    startInfo.Verb = "runas";

    可以查看下面这个帖子的讨论:

    Elevating process privilege programmatically?

    2、如果一个程序需要使用管理员权限的时候需要如下设置 ,使用Winform 的方法如下

    a、在 项目 上 添加新项 选择“应用程序清单文件”("Application Manifest File") 然后单击 添加 按钮,生成文件 app.manifest

    b、打开app.manifest

    将:

    <requestedExecutionLevel  level="asInvoker" uiAccess="false" />

    修改为:

    <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />

    c、然后打开 项目属性 ,将 应用程序 标签页中的 资源 中的 清单 修改为新建的 app.manifest

    d 、重新生成项目即可。

    从.NET Core 3.0开始,也可以在项目中创建和使用“应用程序清单文件”("Application Manifest File")了,可以看到我们在下面的.NET Core控制台项目中,在 项目属性 中选择使用了清单文件app.manifest

    然后,我们可以打开.NET Core的.csproj项目文件,可以看到其中多了一个XML节点<ApplicationManifest>指示项目当前使用了app.manifest清单文件

    所以,从.NET Core 3.0开始,我们也可以通过在项目中创建和使用“应用程序清单文件”("Application Manifest File"),在Windows操作系统上,强制要求.NET Core应用程序 以管理员身份运行(Run as administrator) 了。

    关于在.NET Core项目中使用“应用程序清单文件”("Application Manifest File"),可以查看下面这个帖子的讨论:

    dotnet core app run as administrator

    3、通过Windows service 启动一个程序的时候 A服务启动B程序,A是Windows Service ,B是Windows  通过A程序启动的B程序,好像B不能采用2的方法,那样好像会出现服务无法启动的问题(猜测)。

    原文链接

  • 相关阅读:
    接口中解决默认方法冲突
    继承中的访问域问题
    继承中的多态问题
    Java中方法的调用过程
    【JS】表格获取每一列方法
    【Git报错】 ! [rejected] master -> master (fetch first)
    【Vue】vue-cli配置proxyTable调用服务器接口
    layui监听多个radio事件
    【总结】display属性inline,block,inline-block
    【实例总结】fixed定位元素内部滚动显示
  • 原文地址:https://www.cnblogs.com/OpenCoder/p/10430858.html
Copyright © 2020-2023  润新知