Microsoft Exchange:如何通过EWS获取AD域名

本文关键字:获取 AD 域名 EWS 何通过 Exchange Microsoft | 更新日期: 2023-09-27 18:32:47

我得到一个Exchange电子邮件地址,我必须使用该电子邮件地址获取用户的AD条目。

只要我只有一个 GC,就可以使用目录条目正常工作:

DirectorySearcher searcher = new DirectorySearcher(new DirectoryEntry("GC:"));
searcher.Filter = string.Format("{0}={1}","mail","alexander@contoso.com");
DirectoryEntry entry = searcher.FindOne().GetDirectoryEntry();

但是,如果我有多个受信任的 GC,并且查询 AD 的用户与查询的用户位于不同的 GC 中,则无法在全局编录中找到该对象,因为我没有提供要搜索的 AD 域。

因此,我要么查询所有 GC(我可以在 GC 中找到所有受信任的 GC 吗?),要么使用 EWS 获取目录条目。

这两种可能性中的哪一种会起作用?

Microsoft Exchange:如何通过EWS获取AD域名

我不太明白你的意思:

但是,如果我有多个受信任的 GC,并且正在查询 AD 的用户 与查询的用户位于不同的 GC 中,找不到该对象 在全局编录中,因为我没有提供 AD 域 搜索。

GC 仅包含其自己的林中的对象。
您无法通过查询林 2 中的 GC 来查找位于林 1 中的用户。

指定要使用的 GC

DirectorySearcher searcher = new DirectorySearcher(
    new DirectoryEntry("GC://forest1.net/"));

如果当前用户无权从该林读取数据,则可能需要提供其他用户的凭据:

DirectorySearcher searcher = new DirectorySearcher(
    new DirectoryEntry("GC://forest1.net/", "user", "password"));