2012-07-24 2 views
0

Active Directory에서 데이터를 가져 오는 프로그램을 작성했으며 데이터를 l (도시) 매개 변수로 필터링하는 LDAP 필터가 필요합니다.City ("l") 매개 변수를 사용하여 LDAP 필터를 만드는 방법

내 코드 :

public void SearchByCity(string city) 
     { 
                 //What I must do :(
      DirectoryEntry Entry = new DirectoryEntry("LDAP://<l= + city + >"); 
      string filter = "(&(objectClass=user)(objectCategory=person)(cn=*))"; 
      DirectorySearcher Searcher = new DirectorySearcher(Entry, filter); 

      var q = from s in Searcher.FindAll().OfType<SearchResult>() 
        select new 
        { 
         Benutzer = GetProperty(s, "sAMAccountName"), 
         eMail = GetProperty(s, "mail"), 
         Vorname = GetProperty(s, "givenName"), 
         Nachname = GetProperty(s, "sn"), 
         Telefon = GetProperty(s, "telephoneNumber"), 
         UserID = s.GetDirectoryEntry().Guid 
        }; 

      this.myListView.DataSource = q; 
      this.myListView.DataBind(); 
     } 

tarasov

+0

'I' 나'l' (로케일)? –

+0

LDAP 필터 도시에 대해선 아니지만 지금은 해결책을 가지고 ... – Tarasov

+0

문자열 필터 = "(& (objectClass = user) (objectCategory = person) (l ="+ city + ") (cn = *)) "; // city는 LDAP 매개 변수 값입니다. – Tarasov

답변

0

Solition :

public void SearchByPlace(string city) 
     { 
      DirectoryEntry Entry = new DirectoryEntry("LDAP://" + Properties.Settings.Default.Domain); 
      string filter = "(&(objectClass=user)(objectCategory=person)(l=" + city + ")(cn=*))"; 
      DirectorySearcher Searcher = new DirectorySearcher(Entry, filter); 

      var q = from s in Searcher.FindAll().OfType<SearchResult>() 
        select new 
        { 
         Benutzer = GetProperty(s, "sAMAccountName"), 
         eMail = GetProperty(s, "mail"), 
         Vorname = GetProperty(s, "givenName"), 
         Nachname = GetProperty(s, "sn"), 
         Telefon = GetProperty(s, "telephoneNumber"), 
         UserID = s.GetDirectoryEntry().Guid 
        }; 

      this.myListView.DataSource = q; 
      this.myListView.DataBind(); 
     } 
0

사용이 필터

(&(objectCategory=person)(objectClass=user)(!sAMAccountType=805306370)(l=yourcity)) 
관련 문제