2012-12-20 31 views
9

Tôi đang sử dụng System.DirectoryServices.AccountManagement để cung cấp chức năng tra cứu người dùng.C# - Tìm kiếm người dùng trên nhiều miền Active Directory

Các doanh nghiệp có một số khu vực cụ thể lĩnh vực AD: AMR, EUR, JPN, vv

Các công trình sau đây cho miền EUR, nhưng không trả lại người dùng từ các lĩnh vực khác (tự nhiên):

var context = new PrincipalContext(ContextType.Domain, "mycorp.com", "DC=eur,DC=mycorp,DC=com"); 

var query = new UserPrincipal(GetContext()); 

query.Name = "*Bloggs*"; 

var users = new PrincipalSearcher(query).FindAll().ToList(); 

Tuy nhiên, nếu tôi nhắm mục tiêu toàn bộ thư mục, nó không trả lại người dùng từ bất kỳ của các lĩnh vực cụ thể khu vực:

var context = new PrincipalContext(ContextType.Domain, "mycorp.com", "DC=mycorp,DC=com"); 

Làm cách nào để tìm kiếm toàn bộ thư mục?

Cập nhật

Đọc trên "Làm sao Active Directory tìm kiếm công việc":

http://technet.microsoft.com/en-us/library/cc755809(v=ws.10).aspx

Nếu tôi hậu tố tên máy chủ với cổng 3268 nó tìm kiếm so với Global Catalog:

var context = new PrincipalContext(ContextType.Domain, "mycorp.com:3268", "DC=mycorp,DC=com"); 

Tuy nhiên, nó rất, rất chậm. Bất kỳ đề xuất nào về cách cải thiện hiệu suất?

+0

Đã tìm ra. Sẽ đăng câu trả lời khi SO cho phép tôi. –

+0

Bạn có thể vui lòng đăng những gì bạn đã làm để làm việc này không? – FMFF

+0

Thêm số cổng vào chuỗi miền và tham số vùng chứa làm việc cho tôi, cảm ơn – filip

Trả lời

0

Truy vấn có ký tự đại diện ban đầu (*Bloggs*) sẽ bị chậm trừ khi bạn có chỉ mục tuple trên thuộc tính là truy vấn. Không có thuộc tính nào trong AD được đặt theo mặc định. Tốt hơn là không làm các ký tự đại diện ban đầu.

Các vấn đề liên quan