vc判断当前用户是否具有administrator 权限代码

BOOL IsAdmin()
{
    HANDLE hAccessToken;
    BYTE * InfoBuffer = new BYTE[1024];
    PTOKEN_GROUPS ptgGroups;
    DWORD dwInfoBufferSize;
    PSID psidAdministrators;
    SID_IDENTIFIER_AUTHORITY siaNtAuthority = SECURITY_NT_AUTHORITY;    

    if(!OpenProcessToken(GetCurrentProcess(),TOKEN_QUERY,&hAccessToken))
    {
        delete InfoBuffer;
        return FALSE;
    }    

    if(!GetTokenInformation(hAccessToken,TokenGroups,InfoBuffer,1024,&dwInfoBufferSize))
    {
        delete InfoBuffer;
        CloseHandle(hAccessToken);
        return FALSE;
    }    

    CloseHandle(hAccessToken);    

    if(!AllocateAndInitializeSid(&siaNtAuthority,
        2,
        SECURITY_BUILTIN_DOMAIN_RID,
        DOMAIN_ALIAS_RID_ADMINS,
        0,0,0,0,0,0,
        &psidAdministrators))
    {
        delete InfoBuffer;
        return FALSE;
    }    

    ptgGroups = (PTOKEN_GROUPS)InfoBuffer;    

    for(UINT i = 0; i < ptgGroups->GroupCount; i++)
    {
        if(EqualSid(psidAdministrators,ptgGroups->Groups[i].Sid))
        {
            FreeSid(psidAdministrators);
            delete InfoBuffer;
            return TRUE;
        }
    }
    return FALSE;
}   
时间: 2024-08-05 10:54:34

vc判断当前用户是否具有administrator 权限代码的相关文章

VC判断当前用户有无Administrator的权限(用EqualSid API函数判断与Admin是否在一个组的Sid)

[cpp] view plain copy print? /************************************************************************/ /* 函数说明:判断有无Administrator的权限 /* 参    数:无 /* 返 回 值:成功返回TRUE,否则返回FALSE /* By:Koma   2009.07.28 23:30 /**********************************************

vc 判断当前用户是否在管理员组以及是否SYSTEM权限运行

BOOL IsUserInAdminGroup() //判断是否在管理员组 { BOOL fInAdminGroup = FALSE; HANDLE hToken = NULL; HANDLE hTokenToCheck = NULL; DWORD cbSize = 0; OSVERSIONINFO osver = {0}; osver.dwOSVersionInfoSize = sizeof(osver); if (!OpenProcessToken(GetCurrentProcess(),

判断程序是否运行在管理员权限下

1.提出两个概念(成立条件是系统是Vista后续版本,这是因为引入了UAC) 一个是运行程序的账号是管理员账号 另一个是当前运行环境是管理员环境 2.判断程序是否运行在管理员权限,直接使用函数IsUserAnAdmin就可以判断 #include <ShlObj.h> #include <tchar.h> int _tmain() { BOOL bIsAdmin = IsUserAnAdmin(); if(bIsAdmin) _tprintf_s(_T("Run As a

JS 端判断当前用户是否在某个SharePoint group (包含用户在AD组,然后将AD组加入到SP的组的情况)

本文讲述 JS 端如何判断当前用户是否在某个SharePoint group (包含用户在AD组,然后将AD组加入到SP的组的情况). 笔者曾经总结过JS端判断用户权限的三种方式: http://blog.csdn.net/abrahamcheng/article/details/17447479 但是实际需求中判断某个用户是否在哪个组是非常常见的,正如前面文章中所说,JS端判断当前用户是否在哪个组,只适用用于将用户直接加到SP group这种情况,针对用户在AD组,然后将AD组加入到SP的组的

【linux_笔记】Linux用户、组、权限、加密—基本概念

学习资源来自:www.magedu.com 学习记录过程中难免出现错误,如有发现,还望大神们指出. 示例操作部分有的与历史操作有关,如果先前的示例操作没有执行过的话,可能会有部分示例的操作无法执行.示例仅供参考. 安全上下文(secure context):任何时候用户操作计算机,无非就是发起进程,进程是    用户操作计算机的代理,所以进程在发起运行时,一定是以发起它的用户的身份在    运行.这个进程能够访问哪些文件,取决于这个进程自己的权限和它访问的那个文    件的权限,这个过程的判断是

Linux用户、组和权限

用户.组和权限 一:概念 Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统.由于安全需要,「用户管理」应运而生,以加以明确限制各个用户账户的权限. Linux支持用户组,用户组就是具有相同特征的用户的集合.一个组可以包含多个用户,每个用户也可以属于不同的组.用户组在Linux中扮演着重要的角色,方便管理员对用户进行集中管理. 在Linux中,有三种用户: Root 用户:也称为超级用户,对系统拥有至高无

windows用户和组及其权限的设置

DAY03 Windows 实验一 实验名称:将用户加入内置组 实验描述:新建一个用户将该用户加入系统的内置组中 实验拓扑: 实验步骤: 步骤一:新建一个用户tom-右击属性-隶属于选项卡点击添加-高级-立即查找- 选中Network Configuration Operators确定-确定 步骤二:选中tom用户右击-隶属于-发现已经加入Network Configuration Operators内置组中-切换用户让tom登录-修改IP地址成功 总结:遇到的问题重点就是知道哪些是内置用户组

详解用户,组,权限管理

内容介绍: 我们要使用操作系统进行工作,就需要人机交互操作,这时候计算机就需要创建用户,通过用户来实现操作,而且随着用户的增加需要给用户分组,这时候就需要对文件进行权限管理. 需要使用的工具: 用户相关工具:useradd; userdel; usermod;id;su等: 组相关工具:groupadd; groupdel; groupmod等: 权限管理工具:chmod; chown; chgrp:umask等: 一.用户类别: 管理员:root,管理员用户标识UID:0 普通用户:(系统用户

vue-router如何根据不同的用户给不同的权限

闲聊: 小颖去年在上家公司用的vue1.0之前在做路由这块用的router.map,但是现在vue2.0里已经不能用了,所以之前解决权限问题的例子,小颖也参考不了呜呜 之前看一个美女写的:elememtui(有关权限的那些事) 小颖也想试试怎么根据不同的用户,给不同的访问菜单权限,昨天下午小颖试了好久,都没弄好,用户刚登陆进去菜单栏是好的,但是当页面一刷新,左侧的菜单就不见了,但当小颖点击了别的地方后,左侧的菜单栏又能出来了,阿西吧擦,昨天折腾了小颖一下午,在下班前还是没弄好,回去因为才搬了家房