首页 文章

通过电话号码从Exchange Server查询GAL联系人

提问于
浏览
2

我想从交换服务器获取与特定电话号码匹配的用户 . 我特别希望GAL(全球地址列表)中的用户不是来自用户的个人电话簿 . 我尝试了几种方法,但没有用 .

首先我用过

service.ResolveName("SMTP:", ResolveNameSearchLocation.DirectoryOnly, true)

如下所述:Get all contacts from exchange server,但我无法通过电话号码过滤此列表,列表仅限于100个联系人 .

然后我用过:

ContactsFolder.Bind(service, WellKnownFolderName.Contacts);

如下所述:How to retrieve all contacts from Microsoft Exchange using EWS Managed API?和这里:How do I get address lists (NOT global) using Exchange WebServices in C# . 这仅从个人电话簿中检索联系人 .

最后,我按照这里描述的方式进行了SOAP调用:How to get all users form Exchange with EWS,但这会返回所有没有电话的联系人 - 我必须再次通过id查询每个人以获取电话详细信息 . 最大的问题是我需要知道EWS无法检索的GAL的GUID .

有没有可能通过电话号码过滤GAL?有没有其他方法来实现这一目标?

我的项目是用Visual Studio 2017中的C#.Net编写的 . 我已经部署了一个测试Exchange Server 2017(如果需要,我可以提供更多详细信息和访问权限)

1 回答

  • 0

    Exchange不允许您通过电话号码查询GAL . 我建议您忘记使用EWS并直接查询目录,例如GAL中的任何内容只是用户或联系人对象的Active Directory属性,因此您可以使用LDAP直接查询目录,或者如果您使用Office365,则可以使用Graph API做同样的事情 .

相关问题