WINFORM 应用程序管理员身份执行

/**

* 当前用户是管理员的时候,直接启动应用程序

* 如果不是管理员,则使用启动对象启动程序,以确保使用管理员身份运行

*/

//获得当前登录的Windows用户标示

System.Security.Principal.WindowsIdentity identity = System.Security.Principal.WindowsIdentity.GetCurrent();

System.Security.Principal.WindowsPrincipal principal = new System.Security.Principal.WindowsPrincipal(identity);

//判断当前登录用户是否为管理员

if (principal.IsInRole(System.Security.Principal.WindowsBuiltInRole.Administrator))

{

//如果是管理员,则直接运行

Application.Run(new Form1());

}

else

{

//创建启动对象

System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();

startInfo.UseShellExecute = true;

startInfo.WorkingDirectory = Environment.CurrentDirectory;

startInfo.FileName = Application.ExecutablePath;

//设置启动动作,确保以管理员身份运行

startInfo.Verb = "runas";

try

{

System.Diagnostics.Process.Start(startInfo);

}

catch

{

return;

}

//退出

Application.Exit();

}

外部链接


时间: 2024-08-28 06:57:25

WINFORM 应用程序管理员身份执行的相关文章

Lsrunase普通域用户以管理员身份执行某个软件

应用场景:例如金蝶软件的有些功能必须使用管理员身份执行方可使用 使用方法: 1.     将lsrunase文件夹内的lsrunase.exe复制到电脑的C:\Windows\System32下 2.     使用lsrunase文件夹内的LSencrypt.exe工具,将密码加密生成加密密码 输入两次密码后,点击    Encrypt   按钮 3.     使用如下格式脚本内容,存为*.bat文件(例如kis为管理员用户) lsrunase /user:kis /password:y1Boj

[Winform]默认以管理员身份运行程序

摘要 在使用setupfactory打包之后,想让程序默认以管理员身份运行,因为涉及到创建文件删除文件的操作,如果权限比较低的话,会出现没有权限操作的bug. 解决办法 在项目中找到app.manifest清单文件 修改requestedExecutionLevel 的属性level为requireAdministrator <?xml version="1.0" encoding="utf-8"?> <asmv1:assembly manifes

Runas命令:能让域用户/普通User用户以管理员身份运行指定程序。

注:本文由Colin撰写,版权所有!转载请注明原文地址,谢谢合作! 在某些情况下,为了安全起见,大部分公司都会使用域控制器或只会给员工电脑user的用户权限,这样做能大大提高安全性和可控性,但由此也带来了一些困扰. 比如:某些特定的部门(如财务,物流)没有管理员权限,但工作又需要使用特定的插件或程序,且该程序或插件又必须以管理员身份运行,在这种情况下,我们如果将用户的权限提升为管理员,那样会增加安全风险而且可能引起很多不可控的情况.在这种情况下,我们可以使用runas命令来指定运行某个程序,这个

C# 管理员身份运行程序

在使用winform程序获取调用cmd命令提示符时,如果是win7以上的操作系统,会需要必须以管理员身份运行才会执行成功,否则无效果或提示错误. 比如在通过winform程序执行cmd命令时,某些情况下如果不是以管理员身份运行,则会提示命令无效. 或者通过winform程序执行Windows Service 服务时,也需要以管理员身份才能调用Service服务. 下面讲解一下如何使程序获取管理员权限来运行. 一: 在Visual Studio 中--解决方案资源管理器--右键项目名称--属性,找

VS编译的可执行默认以管理员身份运行

文如其名,很多程序如果不以管理员身份运行的话无法操作到系统盘的一些文件,有些更加严重的是会在运行过程中直接报错,虽说可以通过修改该可执行文件的属性,设置其默认执行权限为"以管理员身份运行",然这毕竟麻烦,且很多用户根本就不会这么去做,是故让程序执行时就自己去要求管理员权限是最终的解决方法. 在VS下面,这个问题其实很好解决,就是做如下操作:右键工程名称选择属性->配置属性->链接器->清单文件->UAC执行级别 在下拉列表框中选择:requireAdminist

c#通过app.manifest使程序 右键 以管理员身份运行

c#通过app.manifest使程序以管理员身份运行 时间:2013-06-27 22:47来源:网络收集+本站整理 作者:jtydl 点击: 1175 次 微软在Windows Vista开始引入了UAC(用户帐户控制)新技术(点击这儿了解什么是UAC).当程序执行时需要权限的话,UAC会弹出警告消息:让用户确认是否同意允许这个程序改变你的计算机配置,windows需要得到你的许可才可以让程序继续执行下去. 通常我们使用c 微软在Windows Vista开始引入了UAC(用户帐户控制)新技

如何跳过UAC以管理员身份启动程序

往往我们要用管理员身份去运行一个程序的时候,总是要有一个提示框: 可能会有用户选择禁用UAC,但这毕竟对系统的安全存在影响.下面就用一个简单的方法解决这个问题.该方法就是利用系统自带的任务计划程序来实现的. 一.创建一个任务来运行你所要运行的程序 找到任务计划程序. 方式一.开始菜单->附件->系统工具->任务计划程序: 方式二.直接在开始菜单的搜索栏中输入"任务计划程序"也可以找到: 方式三.运行(win+r)输入"taskschd.msc".

在Windows8下如何以管理员身份运行应用程序

在Windows7或8下,系统默认以非管理员的身份来执行应用程序,目的是为了保护系统免遭恶意破坏.但有时候应用程序需要访问注册表等一些重要资源时,程序会抛出SecurityException. 如何解决这样的问题? 临时解决方案是右键应用程序,选中"run as administrator" 来运行程序 永久解决方案是直接修改应用程序的属性,把"Run this program as an administrator"选中,如下 在Windows8下如何以管理员身份

将所发布的WinFrom程序以管理员身份运行

右键所发布的WinForm程序安装文件"setup.exe"->以管理员身份运行->安装该程序 安装完之后,再在任务管理器里找到该程序,右键程序进程->属性->兼容性->以管理员身份运行 (还有其他方法可以使得所开发的程序以管理员身份运行,例如可以在VS发布WinForm程序时作些配置,使得在发布后安装时要求以管理员身份运行)