zoukankan      html  css  js  c++  java
  • C#程序启动获取管理员权限(记录)

    看博客园文章有感,记录一下,附上文章链接

    http://www.cnblogs.com/shenchao/archive/2013/03/05/2944660.html

    首先在项目中增加一个 Application Manifest File

    asInvoker : 如果选这个,应用程序就是以当前的权限运行。

    highestAvailable: 这个是以当前用户可以获得的最高权限运行。

    requireAdministrator: 这个是仅以系统管理员权限运行。

    默认情况下是 asInvoker。

    highestAvailable 和 requireAdministrator 这两个选项都可以提示用户获取系统管理员权限。那么这两个选项的区别在哪里呢?

    他们的区别在于,如果我们不是以管理员帐号登录,那么如果应用程序设置为 requireAdministrator ,那么应用程序就直接运行失败,无法启动。而如果设置为 highestAvailable,则应用程序可以运行成功,但是是以当前帐号的权限运行而不是系统管理员权限运行。如果我们希望程序在非管理员帐号登录时也可以运行(这种情况下应该某些功能受限制) ,那么建议采用 highestAvailable 来配置。

    关于requestedExecutionLevel 设置的权威文档请参考下面链接:

    Create and Embed an Application Manifest (UAC)

    下面再来看看程序如何知道当前运行在系统管理员权限还是非系统管理员权限:

            public static bool IsAdministrator()
            {
                WindowsIdentity identity = WindowsIdentity.GetCurrent();
                WindowsPrincipal principal = new WindowsPrincipal(identity);
                return principal.IsInRole(WindowsBuiltInRole.Administrator);
            }
  • 相关阅读:
    php 手动搭建环境
    C#开源大全项目
    基于Aforge的物体运动识别-入门
    第二阶段站立会议02
    第二阶段站立会议01
    第一次绩效评估
    意见评论
    团队项目评论
    意见汇总
    对“小小之植物人”的博客检查结果
  • 原文地址:https://www.cnblogs.com/shether/p/3213565.html
Copyright © 2011-2022 走看看