通过电话号码

时间:2018-03-05 13:58:32

标签: c# .net exchange-server exchangewebservices ews-managed-api

我想从交换服务器获取与特定电话号码匹配的用户。我特别希望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 :(得分:0)

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