1. 程式人生 > >vc判斷當前用戶是否具有administrator 權限代碼

vc判斷當前用戶是否具有administrator 權限代碼

color format min() new ins int class 判斷 auth

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; }

vc判斷當前用戶是否具有administrator 權限代碼