Unsere Firma benutzt ActiveDirectory aus verschiedenen Gründen. Eine davon ist die Behandlung von Outlook-Kontakten und Benutzer-Login-IDs.Wie kann ich den gleichen employeeID-Attributwert extrahieren, den Outlook anzeigt?
Ich habe ein Programm geschrieben, um die angemeldete Benutzer-ID zu erkennen und das Active Directory mit der extrahierten Login-ID zu durchsuchen. Die abgerufenen Informationen aus dem Active Directory werden dann in einer Datenbank gespeichert.
Hier ist der Code ich ActiveDirectory- Informationsdaten ziehen verwendet:
Dim enTry As DirectoryEntry = _
New DirectoryEntry("LDAP://myCOMPANY/DC=myCOMPANY,DC=myCOMPANY,DC=com")
Dim mySearcher As DirectorySearcher = New DirectorySearcher(enTry)
mySearcher.Filter = "(&(objectClass=user)(anr=" & thisUser & "))"
'thisUser is the variable holding the Windows ID that is accessing the ASPX page
mySearcher.PropertiesToLoad.Add("employeeID") 'just in case I need to do this.
Dim resEnt As SearchResult
Try
For Each resEnt In mySearcher.FindAll()
Dim fullname As String = resEnt.GetDirectoryEntry.Properties.Item("cn").Value
'fullname will always pull the right information
Dim e_id As String = resEnt.GetDirectoryEntry.Properties.Item("employeeID").Value
'e_id will sometimes be NOTHING, sometimes will contain an ID that
' is different from the one displayed in Outlook Contact Information
' and sometimes it will be matching the employeeID listed in Outlook info
Catch ex as Exception
Log("Failed to pull AD data: " & ex.Message)
End Try
Aus irgendeinem Grund haben einige Benutzer keine Werte für ihre employeeID Feld, und einige haben.
Alle Benutzer zeigen jedoch beim Anzeigen in Outlook einen employeeID-Wert an.
Ich habe das folgende Bild entworfen, damit Sie verstehen, was ich durchmache. Das Bild ist in zwei Abschnitte unterteilt, einen Abschnitt für jeden CASE.
============================================== ==========
in Fall 1, die Mitarbeiter bei Windows mit seiner ID angemeldet hat: xms33808
Outlook zeigt, dass seine Mitarbeiter ID 16078
Outlook zeigt ist dass sein E-Mail-Alias xms33808
ASP.Net Befehlsfenster zeigt, dass sein Angestellter ID ist xms33808
, was nicht wahr ist
====================================== ================
============================== =========================
in Fall 2, die Mitarbeiter bei Windows mit ID angemeldet hat: 25163
Outlook zeigt, dass seine Employee ID 25163
ist Outlook zeigt, dass sein E-Mail-Alias MutawaAAB
ASP.Net Befehlsfenster zeigt, dass seine employeeID NOTHING
ist.
============================================== =========
Meine Frage ist: Wie kann ich die gleichen MitarbeiterID Wert Informationen extrahieren, die Outlook anzeigt?
Sehr seltsam - Sie haben keinen sekundären AD-Server, oder? –
@DarkcatStudios Nein. Nur ein AD-Server. Aber wie kann ich prüfen, ob es ein anderes gibt? Ich meine, ohne durch menschliche IT-Intervention gehen zu müssen? – Ahmad