2014-05-20 2 views
0

자동 완성 텍스트 상자가 있습니다. Ajax를 사용하여 AD에서 samAccountName을 채우고 AD에서 검색 할 때 LIKE를 사용합니다.LIKE로 Active Directory에서 검색하는 방법은 무엇입니까?

이 내 코드입니다하지만 난 오류가 있습니다

List<string> result = new List<string>(); 
    DirectoryEntry domain1 = default(DirectoryEntry); 
    DirectorySearcher searcher = default(DirectorySearcher); 
    domain1 = new DirectoryEntry(); 
    searcher = new DirectorySearcher("(&(samAccountType=805306368)(!(userAccountControl:1.2.840.113556.1.4.803:=2))(samAccountName LIKE N'%" + username + "%'))"); 
    searcher.SearchRoot = domain1; 
    searcher.SearchScope = SearchScope.Subtree; 
    DataTable dtfill = new DataTable(); 
    dtfill.Columns.Add("UserName"); 

    using (System.DirectoryServices.SearchResultCollection userlist = searcher.FindAll()) 
    { 
     for (int i = 0; i <= userlist.Count - 1; i++) 
result.Add(Convert.ToString(userlist[i].GetDirectoryEntry().Properties["samAccountName"].Value).ToLower());} 

답변

1
searcher = new DirectorySearcher(string.Format("(&(samAccountType=805306368)(!(userAccountControl:1.2.840.113556.1.4.803:=2))(samAccountName=*{0}*))", username)); 

MSDN 페이지 검색을위한 구문에 대한 간단한 개요를 제공합니다.

관련 문제