Accessing LDAP with VB.

  • Thread starter Thread starter Steve Lloyd
  • Start date Start date
S

Steve Lloyd

Hi,

I am trying to get someones email address out of the win 2003 server
Directory using there logon name and the following code.

Dim DSEntry As New System.DirectoryServices.DirectoryEntry("LDAP:" &
System.Environment.GetEnvironmentVariable("LOGONSERVER") & "/CN=" &
System.Enviroment.Username & ",CN=Users,DC=laxeypartners,DC=com")
EmailAddress = DSEntry.Properties("mail").Value.ToString()

However, for some users the directory display name is not the same as the
logon name. e.g. Directory name is John Smith and logon name is
John.Smith.

When I use the logon name in the above code it does not find an entry in the
directory.

Does anyone know of a method that i can use to extract the default email
address from the logon name.

Many thanks,

Steve Lloyd
 
Something like this should work

Private Function GetEmailAddress() As String
Dim Root As New DirectoryEntry("LDAP://RootDSE")
Dim DomainNC As String = Root.Properties("defaultNamingContext").Value
Root = New DirectoryEntry("LDAP://" & DomainNC)
Dim Searcher As New DirectorySearcher(Root)
With Searcher
.Filter = "(sAMAccountName=" & Environment.UserName & ")"
.SearchScope = SearchScope.Subtree
.PropertiesToLoad.Add("mail")
End With
Dim Result As SearchResult = Searcher.FindOne
Dim EMailAddress As String
If Not Result Is Nothing Then
EMailAddress = Result.GetDirectoryEntry.Properties("mail").Value
End If
Return EMailAddress
End Function
 
Perfect, thank you very much...


Jared said:
Something like this should work

Private Function GetEmailAddress() As String
Dim Root As New DirectoryEntry("LDAP://RootDSE")
Dim DomainNC As String = Root.Properties("defaultNamingContext").Value
Root = New DirectoryEntry("LDAP://" & DomainNC)
Dim Searcher As New DirectorySearcher(Root)
With Searcher
.Filter = "(sAMAccountName=" & Environment.UserName & ")"
.SearchScope = SearchScope.Subtree
.PropertiesToLoad.Add("mail")
End With
Dim Result As SearchResult = Searcher.FindOne
Dim EMailAddress As String
If Not Result Is Nothing Then
EMailAddress = Result.GetDirectoryEntry.Properties("mail").Value
End If
Return EMailAddress
End Function
 
Back
Top