title: Validate Active Directory users in VB6
body: <p>I have an application in Visual Basic(VB6) and  I'm trying to authenticate users by Active Directory.  </p>
  
  <p>Is it possible to validate the user name and password?</p>
  
  <p>I am using the following code to validate, but I do not know how to add password also to validate a user.</p>
  
  <pre><code>Public Function FindUserGroupInfo(LoginName As String, GroupName As String) As Boolean
  ' Searches for a user within a specified group in Active Directory.
  ' Returns TRUE if the user is found in the specified group.
  ' Returns FALSE if the user is not found in the group.
  
      ' LDAP Search Query Properties
      Dim conn As New ADODB.Connection    ' ADO Connection
      Dim rs As ADODB.Recordset           ' ADO Recordset
      Dim oRoot As IADs
      Dim oDomain As IADs
      Dim sBase As String
      Dim sFilter As String
      Dim sDomain As String
      Dim sAttribs As String
      Dim sDepth As String
      Dim sQuery As String
      Dim sAns As String
  
      ' Search Results
      Dim user As IADsUser
      Dim group As Variant
      Dim usergroup As String
      Dim userGroupFound As Boolean
  
      On Error GoTo ErrHandler:
  
      userGroupFound = False
  
      'Set root to LDAP/ADO.
      'LDAP://skb_ii.com/DC=skb_ii,DC=com
      Set oRoot = GetObject("LDAP://rootDSE")
  
      'Create the Default Domain for the LDAP Search Query
      sDomain = oRoot.Get("defaultNamingContext")
      Set oDomain = GetObject("LDAP://" &amp; sDomain)
      sBase = "&lt;" &amp; oDomain.ADsPath &amp; "&gt;"
  
      ' Set the LDAP Search Query properties
      sFilter = "(&amp;(objectCategory=person)(objectClass=user)(name=" &amp; LoginName &amp; "))"
      sAttribs = "adsPath"
      sDepth = "subTree"
      sQuery = sBase &amp; ";" &amp; sFilter &amp; ";" &amp; sAttribs &amp; ";" &amp; sDepth
  
      ' Open the ADO connection and execute the LDAP Search query
      conn.Open "Data Source=Active Directory Provider;Provider=ADsDSOObject"
      Set rs = conn.Execute(sQuery)   ' Store the query results in recordset
  
      ' Display the user details
      If Not rs.EOF Then
          Set user = GetObject(rs("adsPath"))
  
          ' Display the groups memberships
          For Each group In user.Groups
              usergroup = group.Name
  
              If (InStr(usergroup, GroupName) &gt; 0) Then
                  FindUserGroupInfo = True
                  Exit Function
              End If
          Next
      End If
      FindUserGroupInfo = userGroupFound
  ErrHandler:
  
      On Error Resume Next
      If Not rs Is Nothing Then
          If rs.State &lt;&gt; 0 Then rs.Close
          Set rs = Nothing
      End If
  
      If Not conn Is Nothing Then
          If conn.State &lt;&gt; 0 Then conn.Close
          Set conn = Nothing
      End If
  
      Set oRoot = Nothing
      Set oDomain = Nothing
  End Function
  </code></pre>