2013-02-28 48 views
0

我想从活动目录中获取我们公司的所有房间,为此,我使用DirectoryEntryDirectorySearcher类。我需要一个获取正确数据的过滤器,但我不知道如何构建过滤器来搜索房间。如何构建筛选器以在.NET应用程序中搜索Active Directory中的房间?

这是我需要过滤的属性:

msExchResourceMetaData = ResourceType:Room

这里是我的代码:

public static DataTable GetRooms(string domaincontroller) 
{ 
    DataTable list = new DataTable(); 

    string filter = "(&(objectClass=user)(objectCategory=user)(|(telephoneNumber=*)(mail=*)))"; 

    //.... 

    return list; 
} 

我只需要过滤。其余的我知道:(

回答

3

你那里会给你一个电话号码或电子邮件地址,每个用户的过滤器。

如果您正在寻找配有一个电话号码或电子邮件地址,只添加(msExchResourceMetaData=ResourceType:Room)

string filter = "(&(objectClass=user)(objectCategory=user)(msExchResourceMetaData=ResourceType:Room)(|(telephoneNumber=*)(mail=*)))"; 

如果你希望所有的房间,无论他们是否有一个电话号码或电子邮件地址(我猜你做的),然后删除不必要的条件:

string filter = "(&(objectClass=user)(objectCategory=user)(msExchResourceMetaData=ResourceType:Room))"; 

注意:在使用Active Directory时,确保你在using区块中包装了所有可用的内容,否则将导致内存泄漏。

相关问题