1

認証目的で LDAP サーバーにアクセスするコードを VB で作成しました。ただし、例外がスローされています。おそらく、nativeObject 呼び出しによって例外が生成されています。動機は、ユーザーを認証することです。コードと例外を提供しています。この問題を解決するのを手伝ってください。

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim cookie As HttpCookie = New HttpCookie("username")
        cookie.Value = TextBox1.Text
        cookie.Expires = DateAndTime.Now.AddHours(12)
        Response.Cookies.Add(cookie)
        Dim entry As New DirectoryEntry("LDAP://xyz.com/dc=xyz,dc=com", TextBox1.Text, TextBox2.Text)
        Try
            Dim obj As New Object
            obj = entry.NativeObject
            Dim search As New DirectorySearcher(entry)
            search.Filter = "(SAMAccountName=" + TextBox1.Text + ")"
            search.PropertiesToLoad.Add("cn")
            Dim result As SearchResult
            result = search.FindOne()
            If result.Equals(Nothing) then
                MsgBox("Try Again with valid username")
            Else
                MsgBox("User Found!")
            Response.Redirect("~/Dashboard.aspx")
            End If
        Catch ex As Exception
            MsgBox(ex.ToString)
        End Try

    End Sub

私が持っている例外

System.Runtime.InteropServices.COMException (0x80005000): 不明なエラー (0x80005000)

System.DirectoryServices.DirectoryEntry.Bind (ブール値 throwIfFail) で

System.DirectoryServices.DirectoryEntry.Bind() で

System.DirectoryServices.DirectoryEntry.get_NativeObject() で

_Default.Button1_Click で

解決策を教えてください/必要に応じてコードを変更してください。

4

1 に答える 1

1

サーバー名が DirectoryEntry にありません

それ以外の

Dim entry As New DirectoryEntry("LDAP://xyz.com/dc=xyz,dc=com", TextBox1.Text, TextBox2.Text)

そのはず

Dim entry As New DirectoryEntry("LDAP://SERVER-NAME/xyz.com/dc=xyz,dc=com", TextBox1.Text, TextBox2.Text)
于 2012-12-07T05:52:55.700 に答える