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. 学习笔记_Filter小结(过滤器JavaWeb三大组件之一)

    Filter小结 Filter的三个方法: l  void init(FilterConfig):在Tomcat启动时被调用: l  void destroy():在Tomcat关闭时被调用: l  ...

  2. 一、Maven环境搭建(windows 环境)

    所需工具 : JDK 1.7    java 环境 Maven 3.3.9  下载最新版本 Windows 7 注 Maven 3.2 要求 JDK 1.6 或以上版本, 而 Maven 3.0/3. ...

  3. iOS--NSNetService和NSNetServiceBrowser(Bonjour网络编程)

    Cocoa 网络框架: Cocoa 网络框架有三层,最底层的是基于 BSD socket库,然后是 Cocoa 中基于 C 的 CFNetwork,最上面一层是 Cocoa 中 Bonjour.通常我 ...

  4. ServiceStack.Redis 破解

    在github上下载了ServiceStack.Redis,做测试发现有限制,居然从v4开始就收费,无聊时,做了个源码分析 废话不多,上测试代码 try { ; i < ; i++) { red ...

  5. JS实现回到页面顶部动画效果 2016.03.23

    最近在模仿各大网站写页面样式和交互,发现好多都有回到顶部的需要,所以写了一下js,记录下来. 发现还可以添加从快到慢的动画效果和随时下拉滚动条停止滚动的功能, 参考了imooc上相关课程,最终实现JS ...

  6. 菜鸟的MySQL学习笔记(二)

    3-1约束: 1.约束保证数据的完整性和一致性: 2.约束分表级约束(两个或两个个以上字段的约束)和列级约束(一个字段约束): 3.NOT NULL       非空: PRIMARY KEY     ...

  7. centOS 6.4 mysql安装

    1 直接安装 yum install mysql mysql-server 2 启动mysql /usr/bin/mysqld_safe --user=mysql & 启动时,如果出现Can' ...

  8. 以前写过的ajax基础案例(王欢-huanhuan)

    //load方法的使用   $('#loadBtn').click(function(){    //responseTxt 包含来自请求的结果数据 //statusTxt 包含请求的状态(" ...

  9. ci 多个文件同时上传

    // 单个文件请手册,这里多个文件中,参数设置可参考手册 view 视图 <form...> <input type="file" name="user ...

  10. Linux之C编译器gcc和makefile使用简介

    使用gcc编译程序是,其过程主要分为四个阶段:预处理,编译,汇编,连接 程序清单: #include<stdio.h> #include<stdlib.h> int main( ...