判断用户是否有管理员权限..谢谢贴
BOOL CRSysInfo::IsUserAdminPrivilege(const CString & strUserName,BOOL & bAdminPrivilege)
{
bAdminPrivilege = FALSE;
PSID pSid = NULL;
DWORD cbSid = 0;
LPTSTR bufDomain = NULL;
DWORD cbDomain = 0;
SID_NAME_USE type;
LookupAccountName(NULL,strUserName,pSid,&cbSid,bufDomain,&cbDomain,&type);
if(cbSid)
{
pSid = new byte[cbSid];
bufDomain = new TCHAR[cbDomain];
if(LookupAccountName(NULL,strUserName,pSid,&cbSid,bufDomain,&cbDomain,&type))
{
PSID_IDENTIFIER_AUTHORITY pAutho = GetSidIdentifierAuthority(pSid);
DWORD dwErr = GetLastError();
if(!dwErr)
{
SID_IDENTIFIER_AUTHORITY AdminAuth = SECURITY_NT_AUTHORITY;
bAdminPrivilege = !memcmp(pAutho,&AdminAuth,sizeof(SID_IDENTIFIER_AUTHORITY));
}
}
delete []pSid;
delete []bufDomain;
}
if(bAdminPrivilege)
return TRUE;
DWORD rc;
USER_INFO_1 *info;
rc = NetUserGetInfo(NULL,_bstr_t(strUserName),1,(byte**)&info);
if(rc == NERR_Success)
{
bAdminPrivilege = info->usri1_priv == USER_PRIV_ADMIN;
NetApiBufferFree(info);
}
return rc == NERR_Success;
}