Accessing LDAP with VB.

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
 
J

Jared

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
 
S

Steve Lloyd

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
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Similar Threads


Top