您的位置:首页 > 其它

获取当前系统用户是管理员权限还是普通用户权限

2012-11-07 21:28 761 查看

获取当前系统用户是管理员权限还是普通用户权限

BOOL WINAPI IsAdminMode()

{

HANDLE hAccessToken;

BYTE *InfoBuffer;

PTOKEN_GROUPS ptgGroups;

DWORD dwInfoBufferSize;

PSID psidAdministrators;

SID_IDENTIFIER_AUTHORITY siaNtAuthority = SECURITY_NT_AUTHORITY;

UINT i;

BOOL bRet = FALSE;

if(!OpenProcessToken(GetCurrentProcess(),TOKEN_QUERY,&hAccessToken))

goto cleanup;

InfoBuffer = new BYTE[1024];

if(!InfoBuffer)

goto cleanup;

bRet = GetTokenInformation(hAccessToken,

TokenGroups,

InfoBuffer,

1024,

&dwInfoBufferSize);

CloseHandle(hAccessToken);

if(!bRet)

goto cleanup;

if( !AllocateAndInitializeSid(&siaNtAuthority,

2,

SECURITY_BUILTIN_DOMAIN_RID,

DOMAIN_ALIAS_RID_ADMINS,

0,0,0,0,0,0,&psidAdministrators) )

goto cleanup;

bRet = FALSE;

ptgGroups = (PTOKEN_GROUPS)InfoBuffer;

for(i = 0; i < ptgGroups-> GroupCount; i++)

{

if(EqualSid(psidAdministrators,ptgGroups-> Group[i].Sid))

{

bRet = TRUE;

break;

}

}

FreeSid(psidAdministrators);

cleanup:

if(InfoBuffer)

delete[] InfoBuffer;

return bRet;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: