gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 07:04:52 25 4
gpt4 key购买 nike

我需要针对 Exchange Server 全局地址列表搜索名称中包含特定文本字符串的所有用户。此操作将从 ASP.NET 应用程序执行。请注意,GAL 是必需的(不是 Active Directory),因为它包含跨域的用户。这也是客户要求的。

我一直在研究 Exchange Web 服务和 Outlook Web Access 方法。但是,在我的组织中可能没有配置这两个选项,因此我需要在要求基础架构配置它之前知道哪个选项是正确的。

Exchange Web 服务

我希望使用 ResolveNames Exchange Web 服务中的方法。它的文档指出:

Active Directory is searched first, and then the user's contact folder is searched.



似乎暗示此方法只会返回当前域中的用户。这样对吗?

Outlook Web Access

我发现的另一个选项是 GALFind。这看起来很完美,但 this article表示不支持。已确认在此 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
}
}

关于asp.net - 跨域查询用户的全局地址列表 (GAL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1260080/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com