在C++中如何引用ADSI来检索活动目录的用户

qieyj 2005-12-22 11:25:34
在C++中如何引用ADSI来检索活动目录的用户
...全文
123 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
gdhyj 2005-12-23
  • 打赏
  • 举报
回复

#pragma comment(lib,"ActiveDS.lib")
#pragma comment(lib,"adsiid.lib")

STDMETHODIMP CheckUser::Check(BSTR User, BSTR Pwd, long *rt)
{
// TODO: Add your implementation code here
*rt=0;
CComBSTR strTemp;
strTemp = L"WinNT://gdhyj/";
strTemp.AppendBSTR(User);
strTemp.Append(L",User");
HRESULT hr;
IADsOpenDSObject *pUser=NULL;
CoInitialize(NULL);
hr= ADsGetObject(L"WinNT:",IID_IADsOpenDSObject,(void **)&pUser);
if (SUCCEEDED(hr))
{
IDispatch *pDisp=NULL;
HRESULT hr1=NULL;
try
{
/*
char buf[100]="";
int nLen=0;
nLen=WideCharToMultiByte(CP_ACP,0,User,-1,NULL,NULL,NULL,NULL);
WideCharToMultiByte(CP_ACP,0,User,-1,buf,nLen,NULL,NULL);
char buf1[100]="";
nLen=WideCharToMultiByte(CP_ACP,0,Pwd,-1,NULL,NULL,NULL,NULL);
WideCharToMultiByte(CP_ACP,0,Pwd,-1,buf1,nLen,NULL,NULL);
FILE *pout;
if((pout=fopen("c:\\123.txt","w"))!=NULL)
{
fprintf(pout,buf);
fprintf(pout,buf1);
}
fclose(pout);
pout=NULL;
*/
hr1=pUser->OpenDSObject(strTemp,User,Pwd,ADS_SECURE_AUTHENTICATION,&pDisp);
if(SUCCEEDED(hr1))
{
*rt=1;
pDisp->Release();
}
else
{
*rt=2;
}
}
catch(...)
{}
pUser->Release();
}
CoUninitialize();
return S_OK;
}
gdhyj 2005-12-22
  • 打赏
  • 举报
回复
我用VC写过域用户验证的代码,在家里的电脑上,晚上再给你

15,440

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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