博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
得到程序当前UAC的执行权限,高 - 中 - 低
阅读量:5338 次
发布时间:2019-06-15

本文共 1698 字,大约阅读时间需要 5 分钟。

1 DWORD GetIntegrityLevel()  2 {  3  DWORD Result = 0; 4  if(!IsVista()) return Result; 5  HANDLE hToken;  6  HANDLE hProcess; 7  DWORD dwLengthNeeded;  8  DWORD dwError = ERROR_SUCCESS; 9  PTOKEN_MANDATORY_LABEL pTIL = NULL; 10  DWORD dwIntegrityLevel;11  hProcess = GetCurrentProcess(); 12  if (OpenProcessToken(hProcess, TOKEN_QUERY | TOKEN_QUERY_SOURCE, &hToken))  13  { 14   if (!GetTokenInformation(hToken, (::TOKEN_INFORMATION_CLASS)TokenIntegrityLevel, NULL, 0, &dwLengthNeeded)) 15   { 16    dwError = GetLastError(); 17    if (dwError == ERROR_INSUFFICIENT_BUFFER) 18    { 19     pTIL = (PTOKEN_MANDATORY_LABEL)LocalAlloc(0, dwLengthNeeded); 20     if (pTIL != NULL) 21     { 22      if (GetTokenInformation(hToken, (::TOKEN_INFORMATION_CLASS)TokenIntegrityLevel, pTIL, dwLengthNeeded, &dwLengthNeeded)) 23      { 24       dwIntegrityLevel = *GetSidSubAuthority(pTIL->Label.Sid,  25        (DWORD)(UCHAR)(*GetSidSubAuthorityCount(pTIL->Label.Sid)-1));26       if (dwIntegrityLevel < SECURITY_MANDATORY_MEDIUM_RID) 27       { 28        Result = IL_LOW;          29         MessageBox(0,"low","low",MB_OK);30       } 31       else if (dwIntegrityLevel >= SECURITY_MANDATORY_MEDIUM_RID &&  32        dwIntegrityLevel < SECURITY_MANDATORY_HIGH_RID) 33       { 34        Result = IL_MEDIUM; 35         MessageBox(0,"MEDIUM","MEDIUM",MB_OK);36       } 37       else if (dwIntegrityLevel >= SECURITY_MANDATORY_HIGH_RID) 38       { 39        Result = IL_HIGH; 40         MessageBox(0,"HIGH","HIGH",MB_OK);41       } 42      }43      LocalFree(pTIL); 44     } 45    } 46   } 47   CloseHandle(hToken); 48  }49  return Result; 50 }

 

转载于:https://www.cnblogs.com/FCoding/archive/2012/06/24/2560510.html

你可能感兴趣的文章
边框圆角方法
查看>>
asp.net WebApi自定义权限验证消息返回
查看>>
php中eval函数的危害与正确禁用方法
查看>>
20172315 2017-2018-2 《程序设计与数据结构》第十一周学习总结
查看>>
MySQL添加、修改、撤销用户数据库操作权限的一些记录
查看>>
C#中List和数组之间转换的方法
查看>>
ViewBag & ViewData
查看>>
关于谷歌浏览器Chrome正在处理请求的问题解决
查看>>
Git核心技术:在Ubuntu下部署Gitolite服务端
查看>>
平面波展开法总结
查看>>
建造者模式
查看>>
ArraySort--冒泡排序、选择排序、插入排序工具类demo
查看>>
composer 安装laravel
查看>>
8-EasyNetQ之Send & Receive
查看>>
Android反编译教程
查看>>
java重写LinkedList
查看>>
zTree节点重叠或者遮挡
查看>>
List<string> 去重复 并且出现次数最多的排前面
查看>>
js日志管理-log4javascript学习小结
查看>>
Android之布局androidmanifest.xml 资源清单 概述
查看>>