判断用户是否有管理员权限..谢谢贴

mfCVinci 2005-05-25 02:52:52
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;
}
...全文
194 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
mfCVinci 2005-05-26
  • 打赏
  • 举报
回复
http://community.csdn.net/Expert/topic/4020/4020096.xml?temp=.4648096
未给完的分继续给。谢谢各位捧场...
idAnts 2005-05-25
  • 打赏
  • 举报
回复
up
wangk 2005-05-25
  • 打赏
  • 举报
回复
顶!
bohut 2005-05-25
  • 打赏
  • 举报
回复
学习
xuzheng318 2005-05-25
  • 打赏
  • 举报
回复
come!
kingzai 2005-05-25
  • 打赏
  • 举报
回复
come
singsong 2005-05-25
  • 打赏
  • 举报
回复
up,接分,学习ing

2,640

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 硬件/系统
社区管理员
  • 硬件/系统社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧