0

Web ASP.netアプリケーションに次のコードを使用します。ローカルでは正常に機能しますが、サーバーでは機能しません。「テーブルが存在しません」というエラーが返されます。私のウェブ設定に<identity impersonate="true"/> 何かアイデアを入れましたか?

#Region " Get AD ID information from LDAP"
Protected Sub Button1_Click(sender As Object, e As System.EventArgs) Handles Button1.Click
    Dim objRootDSE, objRecordSet, objCommand, objConnection, strDNSDomain As Object
    Dim strQuery, strBase, strFilter, strAttributes As Object
    Dim intCountNumber As Integer

    Try
        ' Determine DNS domain name from RootDSE object.
        objRootDSE = GetObject("LDAP://RootDSE")
        strDNSDomain = objRootDSE.Get("defaultNamingContext")

        ' Use ADO to search Active Directory.
        objRecordSet = Server.CreateObject("ADODB.recordset")
        objCommand = Server.CreateObject("ADODB.Command")
        objConnection = Server.CreateObject("ADODB.Connection")
        objConnection.Provider = "ADsDSOObject"
        objConnection.Open("Active Directory Provider")
        objCommand.ActiveConnection = objConnection

        strBase = "<LDAP://" & strDNSDomain & ">"
        strFilter = "(&(objectCategory=person)(objectClass=user)(samaccountname=" & TB_UserID.Text & "))"
        strAttributes = "sn,givenname,mail,telephoneNumber,"
        strQuery = strBase & ";" & strFilter & ";" & strAttributes & ";subtree"
        objCommand.CommandText = strQuery
        objRecordSet = objCommand.Execute
        intCountNumber = objRecordSet.Fields.Count
        TB_Name.Text = objRecordSet.Fields("givenname").value
        TB_LastName.Text = objRecordSet.Fields.Item("sn").value
        TB_Email.Text = objRecordSet.Fields.Item("mail").value
        TB_Telephone.Text = objRecordSet.Fields.Item("telephoneNumber").value

        objRecordSet = Nothing
        objConnection.Close()
    Catch ex As Exception
        DisplayWebMsgBox.WebMsgBox.MessageBox(ex.Message)
    End Try

End Sub

終了リージョン

4

1 に答える 1

0

プロバイダー「ADsDSOObject」を使用すると、ユーザーの信用情報を使用して LDAP 検索を実行することがわかりました。したがって、サーバー側からは、ユーザー名とパスワードの信用情報を提供しない限り機能しません。

    objConnection.Properties("User ID") = Username
objConnection.Properties("Password") = Password
 objConnection.Properties("Encrypt Password") = True
于 2012-10-15T13:57:49.633 に答える