LDAP查询处理空attitributes

时间:2014-08-13 14:24:56

标签: vb.net ldap

我在LDAP中运行vb.net查询。我拉回了家庭目录。如果homedirectory为空,我如何编写一个IF语句来弹出一个msgbox而不是错误“对象引用没有设置为一个对象的实例。”

代码如下:

Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
        If TextBox2.Text = "" Then
            MsgBox("Please enter a Network ID")
            TextBox2.Focus()
            Exit Sub
        End If
        Dim yourUserName As String = TextBox2.Text
        Dim ADSearch As New DirectorySearcher()

        Dim de As DirectoryEntry = GetDirectoryEntry()
        ADSearch.SearchRoot = de
        ADSearch.Filter = "(sAMAccountName=" & yourUserName & ")"
        'ADSearch.PropertiesToLoad.Add("homedirectory")  

        Dim ADResult As SearchResult = ADSearch.FindOne()
        If ADResult Is Nothing Then
            MsgBox("User not found, please try again", MsgBoxStyle.OkOnly, "Not Found")
            TextBox2.Text = ""
            TextBox2.Focus()
            Exit Sub
        Else
            Dim ADEntry As DirectoryEntry = New DirectoryEntry(ADResult.Path)
            TextBox1.Text = (ADEntry.Properties("homeDirectory").Value.ToString)
        End If
    End Sub

1 个答案:

答案 0 :(得分:1)

您需要执行非常基本的 null检查!

' if the "homeDirectory" hasn't been set -> then it will not show up in the SearchResult
If ADEntry.Properties("homeDirectory") Is Nothing Then
   ' do something
Else
   If ADEntry.Properties("homeDirectory").Value Is Nothing Then
      ' do something
   Else
      ' access your property here
      TextBox1.Text = (ADEntry.Properties("homeDirectory").Value.ToString)
   End If
End If