我收到了一个Exchange电子邮件地址,我必须使用该电子邮件地址获取用户的AD条目。
只要我只有一个GC,使用DirectoryEntry就可以正常工作:
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获取DirectoryEntry。
这两种可能性中的哪一种可行?
答案 0 :(得分:1)
我不太明白你的意思:
但是如果我有多个可信任的GC,那么用户正在查询AD 在与查询的用户不同的GC中,无法找到该对象 在全局编录中,因为我没有提供AD域 搜索。
GC只包含自己林中的对象 通过在forest2中查询GC,找不到位于forest1中的用户。
指定要使用的GC
DirectorySearcher searcher = new DirectorySearcher(
new DirectoryEntry("GC://forest1.net/"));
如果当前用户没有权限从该林中读取,您可能需要提供其他用户的凭据:
DirectorySearcher searcher = new DirectorySearcher(
new DirectoryEntry("GC://forest1.net/", "user", "password"));