Query a Novell LDAP server with VB.Net

Once again, I am amazed at how simple tasks have become using .Net. Something I thought would be complex turns out to be completely handled by the framework. Kudos to the .Net team.

For my current project, I need to validate that a person is an internal employee before allowing them continued acccess to the web site. My company uses a Novell infrastructure, and luckily has an LDAP server that I can access for employee validation.

Luckily, Novell provides a resource for developers to begin working with LDAP at the Novell Developer Labs. You can create an account and query their server for free. So that is where I started, but eventually the Novell network admins in my company got around to my request and I was able to use the code almost without modification against our internal server.

Here is my quick console application I created to test against the Novell Developer Lab LDAP site (my container name is Fender and my login is admin.  The only modifications I had to do to get it to work with my company’s LDAP server was to learn the container names and the fields I could query.  

Imports System.DirectoryServices

Sub Main()
ds As New DirectorySearcher
Dim resultset As SearchResultCollection
Dim result As SearchResult
‘Return the securityEquals field and the cn field
Dim ResultFields() As String = {“securityEquals”, “cn”}

With ds
    ‘Set the container I want to search (.admin.Fender.user.novell)
    .SearchRoot = New DirectoryEntry(
    ‘Use the array set above for return fields
‘Set a filter/query
    .Filter = “cn=ad*”
End With

‘Perform the search

resultset = ds.FindAll()
    If resultset.Count > 0
For Each result In resultset
        ‘No results
Console.WriteLine(“No Data Found”)
    End If

Catch ex As Exception
   Console.WriteLine(“Error: “)
End Try

End Sub