如何向AD发出账号和密码以及身份认证请求,然后获取认证结果?
最好有例程。

解决方案 »

  1.   

    即是域用户登陆,在C#里面可以通过LDAP来做,VB可以吗?
      

  2.   

    可以通过控件实现。
    http://faq.xunweb.org/itfaq/vb2/2006-06-04/5413.html
      

  3.   

    Dim con As New Connection, rs As New Recordset
    Dim adVariant
    Dim i 'Used for counter
    Dim j 'Used for counter
    Dim Com As New Command
    Dim strDomain As String
    Dim strPassword As String
     
    ' Open a Connection object.
    con.Provider = "ADsDSOObject"
    con.Properties("ADSI Flag") = 1
    con.Properties("User ID") = strDomain + "\" + strUserID
    con.Properties("Password") = strPasswordcon.Open "Active Directory Provider"
     
    ' Create a command object on this connection.
    Set Com.ActiveConnection = con
     
    ' Set the query string.
    Com.CommandText = "<LDAP://MyServer/DC=MyDomain,DC=Fabrikam,DC=com>;
         (objectClass=*);ADsPath, objectclass;base"
     
    ' Set search preferences.
    Com.Properties("Page Size") = 1000
    Com.Properties("Timeout") = 30 'seconds
     
    ' Execute the query.
    Set rs = Com.Execute
     
    ' Navigate the record set.
    rs.MoveFirst
    While Not rs.EOF
        For i = 0 To rs.Fields.Count - 1
            If rs.Fields(i).Type = adVariant And Not (IsNull(rs.Fields(i).Value)) Then
                Debug.Print rs.Fields(i).Name, " = "
                For j = LBound(rs.Fields(i).Value) To UBound(rs.Fields(i).Value)
                    Debug.Print rs.Fields(i).Value(j), " # "
                Next j
            Else
                Debug.Print rs.Fields(i).Name, " = ", rs.Fields(i).Value
            End If
        Next i
        rs.MoveNext
    Wend
     
    rs.MoveLast
    Debug.Print "No. of rows = ", rs.RecordCount
      

  4.   

    或者查看下面地址:
    1/
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/adsi/adsi/ldap_dialect.asp2/
    http://rulink.rutgers.edu/ldap-vb.html