当社は、様々な理由のためにActiveDirectoryを使用しています。その1つは、Outlookの連絡先とユーザーのログインIDを処理することです。Outlookが表示しているのと同じemployeeID属性値を抽出するにはどうすればよいですか?
私はユーザーIDでログインして検出すると、抽出されたログインIDを使用してActive Directoryを検索するプログラムを書かれています。 Active Directoryから取得した情報は、データベースに格納されます。ここで
私はActiveDirectoryの情報データを引っ張るために使用されるコードです:何らかの理由
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
、一部のユーザーは、自分の社員コードフィールドの値を持たない、といくつかは持っています。
Outlookで閲覧する場合しかし、すべてのユーザーが、社員コードの値を表示します。
私はあなたが私が通過していますかを理解するために、次の画像を設計しました。 画像は2つのセクション、各ケースの区画に分割されています。
==============================================ケース1で==========
、従業員が自分のIDを使用してWindowsにログインしている:xms33808
Outlookは彼の従業員IDは16078
Outlookのショーであることを示しています彼の電子メールエイリアスがxms33808
ASP.Netのコマンドウィンドウは、その彼の従業員を示していることIDは======================================真
されていない、xms33808
です================
============================== =========================ケース2で
を、従業員はIDを使用してWindowsにログインしている:25163
をOutlookは彼の従業員IDは、25163
であることを示していますOutlookは自分の電子メールエイリアスがMutawaAAB
であることを示しています。ASP.Netコマンドウィンドウには、彼のemployeeIDがNOTHING
であることが示されています。
============================================== =========
私の質問は:どのように私は、Outlookが表示されているのと同じ社員コード値情報を抽出することができますか?
非常に奇妙です - あなたはセカンダリADサーバーを持っていませんか? –
@DarkcatStudiosいいえ.1台のADサーバーのみ。しかし、他のものがあるかどうかをどうすれば確認できますか?私はITの人間の介入を経ないといけないのですか? – Ahmad