2012-03-29 4 views
1

В настоящее время у меня есть индивидуальный подборщик людей в sharepoint 2010, он ищет поисковый запрос по имени учетной записи, но также и по имени.поиск имени и имени samaccount в то же время

Однако его сделано в двух разных методах. У меня нет опыта с сложными запросами AD, но я полагаю, что могу сделать это только в одной строке и с OR?

Что мне нужно, чтобы он соответствовал либо, часть SAMAccountName ИЛИ часть имени

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); 
     } 

ответ

3

Да, вы можете сгруппировать и/или операторы в запросах LDAP, используя следующий синтаксис, основанный на вашем примере :

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

Это должно выполнить поиск по имени или имени samAccountName.

В дополнение, MSDN имеет primer on LDAP queries.

Надеюсь, что поможет

+0

отлично, вы парень !!! \ –

Смежные вопросы