C# 如何构建筛选器以在.NET应用程序中搜索Active Directory中的文件室?
我想从active directory获取我们公司的所有房间,为此我使用了C# 如何构建筛选器以在.NET应用程序中搜索Active Directory中的文件室?,c#,active-directory,ldap,directorysearcher,C#,Active Directory,Ldap,Directorysearcher,我想从active directory获取我们公司的所有房间,为此我使用了DirectoryEntry和DirectorySearcher类。我需要一个过滤器来获取正确的数据,但我不知道如何构建过滤器来搜索房间 以下是我需要筛选的属性: 这是我的密码: public static DataTable GetRooms(string domaincontroller) { DataTable list = new DataTable(); string filter = "(
DirectoryEntry
和DirectorySearcher
类。我需要一个过滤器来获取正确的数据,但我不知道如何构建过滤器来搜索房间
以下是我需要筛选的属性:
这是我的密码:
public static DataTable GetRooms(string domaincontroller)
{
DataTable list = new DataTable();
string filter = "(&(objectClass=user)(objectCategory=user)(|(telephoneNumber=*)(mail=*)))";
//....
return list;
}
我只需要过滤器。剩下的我知道:(你那里的过滤器会给你的每个用户一个电话号码或电子邮件地址 如果您要查找带有电话号码或电子邮件地址的房间,只需添加
(msExchResourceMetaData=ResourceType:Room)
:
如果您想要所有房间,不管他们是否有电话号码或电子邮件地址(我猜您有),那么请删除不必要的条件:
string filter = "(&(objectClass=user)(objectCategory=user)(msExchResourceMetaData=ResourceType:Room))";
注意:在使用Active Directory时,请确保正在使用块将所有内容包装在
中,否则将导致内存泄漏。您的过滤器将为每个用户提供电话号码或电子邮件地址
如果您要查找带有电话号码或电子邮件地址的房间,只需添加(msExchResourceMetaData=ResourceType:Room)
:
如果您想要所有房间,不管他们是否有电话号码或电子邮件地址(我猜您有),那么请删除不必要的条件:
string filter = "(&(objectClass=user)(objectCategory=user)(msExchResourceMetaData=ResourceType:Room))";
注意:在使用Active Directory时,请确保正在使用
块在中包装所有可以包装的内容,否则会导致内存泄漏