zoukankan      html  css  js  c++  java
  • VC判断当前用户有无Administrator的权限(用EqualSid API函数判断与Admin是否在一个组的Sid)


    [cpp]
     view plain copy
     
     print?
    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.       
    16.     if(!OpenProcessToken(GetCurrentProcess(),TOKEN_QUERY,&hAccessToken))    
    17.     {    
    18.         delete InfoBuffer;    
    19.         return FALSE;    
    20.     }    
    21.       
    22.     if(!GetTokenInformation(hAccessToken,TokenGroups,InfoBuffer,1024,&dwInfoBufferSize))    
    23.     {    
    24.         delete InfoBuffer;    
    25.         CloseHandle(hAccessToken);    
    26.         return FALSE;    
    27.     }    
    28.       
    29.     CloseHandle(hAccessToken);    
    30.       
    31.     if(!AllocateAndInitializeSid(&siaNtAuthority,    
    32.         2,    
    33.         SECURITY_BUILTIN_DOMAIN_RID,    
    34.         DOMAIN_ALIAS_RID_ADMINS,    
    35.         0,0,0,0,0,0,    
    36.         &psidAdministrators))    
    37.     {    
    38.         delete InfoBuffer;    
    39.         return FALSE;    
    40.     }    
    41.       
    42.     ptgGroups = (PTOKEN_GROUPS)InfoBuffer;    
    43.       
    44.     for(UINT i = 0; i < ptgGroups->GroupCount; i++)    
    45.     {    
    46.         if(EqualSid(psidAdministrators,ptgGroups->Groups[i].Sid))    
    47.         {    
    48.             FreeSid(psidAdministrators);    
    49.             delete InfoBuffer;    
    50.             return TRUE;    
    51.         }    
    52.     }    
    53.     return FALSE;    
    54. }   
     
     

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

  • 相关阅读:
    杂七杂八的文档资料。
    图片(img标签)的onerror事件
    html的a标签的 href 和 onclick。
    【mysql】一次有意思的数据库查询分析。
    书籍:Building Secure PHP Apps
    js关闭当前页面/关闭当前窗口
    【汉字乱码】IE下GET形式传递汉字。
    弹出层展示插件。
    原型图设计工具。
    LeetCode(24): 两两交换链表中的节点
  • 原文地址:https://www.cnblogs.com/findumars/p/5928696.html
Copyright © 2011-2022 走看看