2012-03-29 4 views
1

Derzeit habe ich eine benutzerdefinierte Personenauswahl in sharepoint 2010, es sucht den Suchbegriff auf den Kontonamen, sondern auch auf den Namen.Suche nach Name und samaccountname zur gleichen Zeit

Allerdings ist es in 2 verschiedenen Methoden getan. Ich habe keine Erfahrung mit komplexen AD-Abfragen, aber ich nehme an, dass ich dies nur in einer Zeile und mit einem OR tun kann.

Was ich brauche, ist, dass es entweder übereinstimmt, ein Teil des samaccountname oder einen Teil des Namens

public static DataTable ExecuteNameQuery(string rootPath, string search) 
    { 
     string filter = "(&(objectCategory=person)(objectClass=user)(name=*" + search + "*))"; 
     return ExecuteADQuery(rootPath, filter); 
    } 


     public static DataTable ExecutesAMAccountNameQuery(string sAMAccountName) 
     { 
      string filter = "(&(objectCategory=person)(objectClass=user)(sAMAccountName=*" + sAMAccountName + "*))"; 
      return ExecuteADQuery("GC:", filter); 
     } 

Antwort

3

Ja, können Sie Gruppe und/oder Operatoren in LDAP-Abfragen die folgende Syntax verwenden, basierend auf dem Beispiel :

string filter = "(&(objectCategory=person)(objectClass=user)(|(name=*" + search + "*)(samAccountName=*" + search + "*)))"; 

Das sollte die Suche nach Name oder samAccountName durchführen.

Zusätzlich verfügt MSDN über eine primer on LDAP queries.

Hoffe, dass hilft

+0

perfekt, du bist der Typ !!! \ –

Verwandte Themen