1. /************************************************************************/
  2. /* 函数说明:判断有无Administrator的权限
  3. /* 参    数:无
  4. /* 返 回 值:成功返回TRUE,否则返回FALSE
  5. /* By:Koma   2009.07.28 23:30
  6. /************************************************************************/
  7. BOOL IsAdmin()
  8. {
  9. HANDLE hAccessToken;
  10. BYTE * InfoBuffer = new BYTE[1024];
  11. PTOKEN_GROUPS ptgGroups;
  12. DWORD dwInfoBufferSize;
  13. PSID psidAdministrators;
  14. SID_IDENTIFIER_AUTHORITY siaNtAuthority = SECURITY_NT_AUTHORITY;
  15. if(!OpenProcessToken(GetCurrentProcess(),TOKEN_QUERY,&hAccessToken))
  16. {
  17. delete InfoBuffer;
  18. return FALSE;
  19. }
  20. if(!GetTokenInformation(hAccessToken,TokenGroups,InfoBuffer,1024,&dwInfoBufferSize))
  21. {
  22. delete InfoBuffer;
  23. CloseHandle(hAccessToken);
  24. return FALSE;
  25. }
  26. CloseHandle(hAccessToken);
  27. if(!AllocateAndInitializeSid(&siaNtAuthority,
  28. 2,
  29. SECURITY_BUILTIN_DOMAIN_RID,
  30. DOMAIN_ALIAS_RID_ADMINS,
  31. 0,0,0,0,0,0,
  32. &psidAdministrators))
  33. {
  34. delete InfoBuffer;
  35. return FALSE;
  36. }
  37. ptgGroups = (PTOKEN_GROUPS)InfoBuffer;
  38. for(UINT i = 0; i < ptgGroups->GroupCount; i++)
  39. {
  40. if(EqualSid(psidAdministrators,ptgGroups->Groups[i].Sid))
  41. {
  42. FreeSid(psidAdministrators);
  43. delete InfoBuffer;
  44. return TRUE;
  45. }
  46. }
  47. return FALSE;
  48. }
 
 

http://blog.csdn.net/wangningyu/article/details/4389546

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

  1. 判断当前用户有无Administrator的权限

    很方便的一个函数,有兴趣的看看! /************************************************************************/ /* 函数说明: ...

  2. 修改hosts文件(判断是否为管理员/以管理员权限运行脚本)

    将以下命令保存为 HostsModify.ps1,然后执行即可 #该脚本用来添加hosts解析记录.脚本在执行的时候会判断当前用户是否为管理员,如果不是则弹出提示框口,要求输入相应密码 If (-NO ...

  3. 【Java EE 学习 76 上】【数据采集系统第八天】【角色授权】【用户授权】【权限的粗粒度控制】【权限的细粒度控制】

    一.角色管理 单击导航栏上的"角色管理"超链接,跳转到角色管理界面,在该界面上显示所有角色,并提供角色的增加和删除.修改超链接. 1.增加新角色(角色授权) 流程:单击增加新角色超 ...

  4. 在Sharepoint 2013中,使用JS判断当前用户是否在某个组里面

    使用Sharepoint客户端对象模型,判断当前用户是否在某个组里面. 在View 和 Edit List Item的时候使用,使用户编辑修改List Item的时候有权限的区分. 在Edit 页面加 ...

  5. linux添加用户、用户组、权限

    # useradd –d /usr/sam -m sam 此命令创建了一个用户sam,其中-d和-m选项用来为登录名sam产生一个主目录/usr/sam(/usr为默认的用户主目录所在的父目录). 假 ...

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

    闲聊: 小颖去年在上家公司用的vue1.0之前在做路由这块用的router.map,但是现在vue2.0里已经不能用了,所以之前解决权限问题的例子,小颖也参考不了呜呜 之前看一个美女写的:elemem ...

  7. Linux入门:增加用户,并赋予权限

    一.增加用户 1.增加用户,并指定主目录 # useradd –d /usr/sam -m sam此命令创建了一个用户sam,其中-d和-m选项用来为登录名sam产生一个主目录/usr/sam(/us ...

  8. Linux 用户身份与进程权限

    在学习 Linux 系统权限相关的主题时,我们首先关注的基本都是文件的 ugo 权限.ugo 权限信息是文件的属性,它指明了用户与文件之间的关系.但是真正操作文件的却是进程,也就是说用户所拥有的文件访 ...

  9. 使用 Shiro 设计基于用户、角色、权限的通用权限管理系统

    一.前言 在大型的信息管理系统中,经常涉及到权限管理系统 下面来个 demo,很多复杂的系统的设计都来自它 代码已经放到github上了,地址:https://github.com/larger5/s ...

随机推荐

  1. JQuery设置缓慢下拉大行多次执行的解决办法,以及stop()函数的简单理解

    $(function(){ $('.all>li').mouseover(function(e) {        $(this).children().stop().slideDown(300 ...

  2. js中的对象封装

    用json封装,用构造函数封装,用原型函数进行封装,原型函数最节省内存,将大部分相同的属性或方法放在静态区域中,创建对象时,如果对象属性与默认的不一样,则可以在该对象中覆盖静态区域中的值,不影响其他对 ...

  3. bgycoding

    //add by zzw@曾志伟 2015-12-9 [碧桂园项目] begin if(condition.indexOf("glbdef8 = 'Y'")>0){ Stri ...

  4. 取caml查询结果的前多少行

    取查询结果的前多少行的方法?spQuery.RowLimit = 1;             SPList list = SPContext.Current.Web.Lists[ListNames. ...

  5. oracle数据库TNS

    TNS是Oracle Net的一部分,专门用来管理和配置Oracle数据库和客户端连接的一个工具,在大多数情况下客户端和数据库要通讯,必须配置TNS,下面看一如何配置它吧: TNS简要介绍与应用 :O ...

  6. VMware Workstation不能启用虚拟设备floppy0由于灭有相应的有效设备在主机上. 你要尝试在每次打开虚拟机电源时连接此虚拟设备?

    编辑虚拟机的硬件,把软盘取消掉,floppy的提示就没有了

  7. nginx详细配置文件 (转)

    Nginx的代码是由一个核心和一系列的模块组成, 核心主要用于提供Web Server的基本功能,以及Web和Mail反向代理的功能:还用于启用网络协议,创建必要的运行时环境以及确保不同的模块之间平滑 ...

  8. linux相关解压命令

    ZIP 我们可以使用下列的命令压缩一个目录: # zip -r archive_name.zip directory_to_compress 下面是如果解压一个zip文档: # unzip archi ...

  9. 构建 shiro struts2 spring3 mybatis 的maven项目

    书接上回 构建 struts2 spring3 mybatis 的maven项目 构建 pom.xml 继续在原有框架下 融合shiro ,具体shiro是啥 这里就不解释了,恩 反正功能挺强大的 本 ...

  10. PHP全局变量

    1.global 关键字 2.$GLOBALS 3.使用静态变量