Công ty chúng tôi sử dụng ActiveDirectory vì nhiều lý do. Một trong số đó là xử lý các địa chỉ liên hệ Outlook và ID đăng nhập của người dùng.Làm cách nào để trích xuất cùng một giá trị thuộc tính employeeID mà Outlook đang hiển thị?
Tôi đã viết chương trình để phát hiện id người dùng đã đăng nhập và tìm kiếm Active Directory bằng id đăng nhập được trích xuất. Thông tin được kéo từ Active Directory sau đó được lưu trữ trong cơ sở dữ liệu.
Đây là mã tôi đã sử dụng để kéo ActiveDirectory dữ liệu thông tin:
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
Đối với một số lý do, một số người dùng không có giá trị cho lĩnh vực EmployeeID của họ, và một số có.
Tuy nhiên, tất cả người dùng sẽ hiển thị giá trị employeeID khi duyệt trong Outlook.
Tôi đã thiết kế hình ảnh sau đây để giúp bạn hiểu những gì tôi đang trải qua. Hình ảnh được chia thành hai phần, một phần cho mỗi CASE.
============================================== ==========
trong Trường hợp 1, người lao động đã đăng nhập vào Windows sử dụng ID của mình: xms33808
Outlook cho thấy ID nhân viên của mình là 16078
Outlook show bí danh email của anh ấy là xms33808
Cửa sổ lệnh ASP.Net cho thấy rằng nhân viên của anh ấy ID là xms33808
, không đúng
====================================== ================
============================== =========================
trong Trường hợp 2, người lao động đã đăng nhập vào Windows sử dụng ID: 25163
Outlook cho thấy ID nhân viên của anh ấy là 25163
Outlook cho thấy bí danh email của anh ấy là MutawaAAB
Cửa sổ lệnh ASP.Net cho biết rằng ID nhân viên của anh ấy là NOTHING
.
============================================== =========
Câu hỏi của tôi là: Làm thế nào tôi có thể trích xuất cùng một thông tin giá trị employeeID mà Outlook đang hiển thị?
Rất lạ - bạn không có máy chủ AD phụ? –
@DarkcatStudios No. Chỉ một máy chủ AD. Nhưng làm thế nào tôi có thể kiểm tra xem có IS khác không? Tôi có nghĩa là không đi qua can thiệp của con người CNTT? – Ahmad