Как создать фильтр для поиска комнат в Active Directory в приложении.NET?
Я хочу получить все номера в нашей компании из активного каталога, и для этого я использую DirectoryEntry
и DirectorySearcher
классы. Мне нужен фильтр, который получает правильные данные, но я не знаю, как построить фильтр для поиска комнат.
Вот атрибут, который мне нужно отфильтровать:
Вот мой код:
public static DataTable GetRooms(string domaincontroller)
{
DataTable list = new DataTable();
string filter = "(&(objectClass=user)(objectCategory=user)(|(telephoneNumber=*)(mail=*)))";
//....
return list;
}
Мне нужен только фильтр. Остальное я знаю:(
1 ответ
Фильтр, который у вас есть, даст вам каждого пользователя с номером телефона или адресом электронной почты.
Если вы ищете номера с номером телефона или адресом электронной почты, просто добавьте (msExchResourceMetaData=ResourceType:Room)
:
string filter = "(&(objectClass=user)(objectCategory=user)(msExchResourceMetaData=ResourceType:Room)(|(telephoneNumber=*)(mail=*)))";
Если вам нужны все комнаты независимо от того, есть ли у них номер телефона или адрес электронной почты (что, я полагаю, у вас есть), тогда отбросьте ненужные условия:
string filter = "(&(objectClass=user)(objectCategory=user)(msExchResourceMetaData=ResourceType:Room))";
Примечание: убедитесь, что вы упаковываете все, что можете в using
блокирует при работе с Active Directory, или вы получите утечки памяти.