我想写一个程序,系统登陆时需要用户名和密码验证,这个用户名和密码是远程服务器(可能是AD服务器)上已经建好的,我要做的是直接服务器远程用户认证。我看了微软的msdn,似乎Network Management Functions能实现,我看了NetUserGetInfo说明,如果第三个参数level=1的话,会把密码返回,但实际情况是直接返回错误,提示不存在的用户名或者错误的密码。但我看了这个函数,没有密码的参数,如何破?或者有什么其他的办法解决此问题。多谢!

解决方案 »

  1.   

    我使用LogonUser函数,老是0x52e错误,这是什么原因导致。
    域控名test.com,用户aa,密码Jlxe!1,代码如下:
     if(LogonUser("aa","test.com","Jlxe!1",LOGON32_LOGON_INTERACTIVE,LOGON32_PROVIDER_DEFAULT,&hUser))
    {  
      MessageBox("OK");
      }
      else
       {
      dwError  = GetLastError();
       }
    最后dwError = 0x52e
    请教这是什么原因导致?
      

  2.   

    看看这个是否有启示 ADSI接口获取AD域服务器账户列表[VC++]
      

  3.   

    你这样使用肯定有问题,按MSDn说明,用户名必须是Unicodeusername 
    Pointer to a Unicode string containing the name of the user account on which to return information你使用Unicode编译,同时字符串都加上_T(。)试试;