2014-02-11 3 views
0

Я разработал небольшое приложение, которое считывает информацию пользователя из Active Directory. В начале приложения я использовал ниже фильтрСостояние LDAP ИЛИ - Неверный фильтр

search.Filter = "(&((&(objectCategory=Person)(objectClass=User)))(displayName=*" + username + "*))";

Это работало отлично.

Теперь я предоставляю пользователю возможность получить данные о сотрудниках на основе полей имени пользователя или офиса или заголовка.

Запрос, который я использовал для получения информации, выглядит следующим образом, но не работает. Он бросает и исключение

"фильтр поиска недействительна."

(&((&(objectCategory=Person)(objectClass=User)))(|((displayName=*" + username + "*)(l = *" + location + "*)(title=*" + title + "*))))"; 

Пример: retieve детали работника в зависимости от местоположения: Хайдарабад Запрос выполнения выглядит следующим образом

(&((&(objectCategory=Person)(objectClass=User)))(|((displayName=**)(l = *hyder*)(title=**)))

фильтр поиска недействителен.

+0

Оставьте язык C# и не помещайте его в заголовок! – Filburt

ответ

0

Я думаю, что ваши намерения не ясны, что вы ищете что-то подобное:

(& (ObjectCategory = Person) (объектный = Пользователь) (| (DISPLAYNAME = сэм) (л = расположение) (название = название)))

Which could be visualized as: 
(& 
    (objectCategory=Person) 
    (objectClass=User) 
    (| 
     (displayName=*sam*) 
     (l=*location*) 
     (title=*title*) 
    ) 
) 

конечно, вы должны были бы поставить в ваших параметрах коды вместо значений, показанных.

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