代码之家  ›  专栏  ›  技术社区  ›  Sebastian

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

  •  2
  • Sebastian  · 技术社区  · 6 年前

    我想从exchange服务器获取与特定电话号码匹配的用户。我特别希望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?有没有其他方法可以做到这一点?

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

    1 回复  |  直到 6 年前
        1
  •  0
  •   Glen Scales    6 年前

    Exchange不允许您通过电话号码查询GAL。我的建议是,您忘记了使用EWS,只需直接查询目录,例如GAL中的任何内容都只是用户或联系人对象的Active directory属性,因此您可以使用LDAP直接查询目录,或者如果您使用Office365,则可以使用Graph API来执行相同的操作。