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

时间:2017-08-25 13:34:49   收藏:0   阅读:282
 /**
* 当前用户是管理员的时候,直接启动应用程序
* 如果不是管理员,则使用启动对象启动程序,以确保使用管理员身份运行
*/
//获得当前登录的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();
}
外部链接

原文:http://www.cnblogs.com/sunlyk/p/7427300.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!