查询跨域用户的全局地址列表(GAL)

我需要针对Exchange Server全局地址列表搜索其名称中包含特定文本字符串的所有用户。此操作将从ASP.NET应用程序执行。请注意,GAL是必需的(不是Active Directory),因为它包含跨域的用户。这也是客户要求的。 我一直在研究Exchange Web服务和Outlook Web Access方法。但是,我的组织中既没有配置也没有,所以在要求基础设施配置之前,我需要知道哪个选项是正确的。 Exchange Web服务 我希望在Exchange Web服务中使用ResolveNames方法。它的文档说明:   首先搜索Active Directory,然后搜索用户的联系人文件夹。 它似乎意味着此方法只会从当前域返回用户。它是否正确? Outlook Web Access 我发现的另一个选择是GALFind。这看起来很完美但是这篇文章表明它不受支持。此Technet文章中已确认不再提供此内容。 任何人都可以就这些或任何其他选择提供建议吗?     
已邀请:
可以通过从林根开始查询来跨域查询。这是我最终使用的代码:
string filter = "(&(objectCategory=person)(objectClass=user)(name=*" + search + "*))";
var rootEntry = new DirectoryEntry("GC:");
foreach (DirectoryEntry entry in rootEntry.Children)
{
    DirectoryEntry forestEntry = entry;
    DirectorySearcher searcher = new DirectorySearcher
        {
            SearchRoot = forestEntry,
            Filter = filter,
            Sort =
                {
                    Direction = SortDirection.Ascending,
                    PropertyName = "cn"
                }
        };
    searcher.PropertiesToLoad.AddRange(ADProperties.Values.ToArray());
    SearchResultCollection results = searcher.FindAll();
    foreach (SearchResult result in results)
    {
        DirectoryEntry foundEntry = result.GetDirectoryEntry();

        // Do something
    }
}
    
我不是Exchange专家,但是你不能使用协作数据对象(CDO)这样做,尽管它可能不会太快。     

要回复问题请先登录注册