我想从交换服务器获取与特定电话号码匹配的用户。我特别希望GAL(全局地址列表)中的用户不要来自用户的个人电话簿。我尝试了几种方法,但无济于事。
首先我用过
service.ResolveName("SMTP:", ResolveNameSearchLocation.DirectoryOnly, true)
如此处所述:从Exchange Server获取所有联系人,但是我无法通过电话号码过滤此列表,并且该列表最多只能包含100个联系人。
然后我用了:
ContactsFolder.Bind(service, WellKnownFolderName.Contacts);
如此处所述:如何使用EWS托管API从Microsoft Exchange检索所有联系人?以及这里:如何使用C#中的Exchange WebServices获取地址列表(非全局)。这仅从个人电话簿中检索联系人。
最后,我按如下所述进行了SOAP调用:如何使所有用户通过EWS与Exchange交换,但是这将返回没有电话的所有联系人-我必须再次通过ID查询每个人以获取电话详细信息。最大的问题是,我需要了解EWS无法检索的GAL的GUID。
是否可以通过电话号码过滤GAL?还有其他方法可以做到这一点吗?
我的项目是用Visual Studio 2017中的C#.Net编写的。我已经部署了测试Exchange Server 2017(如果需要,我可以提供更多详细信息和访问权限)
Exchange不允许您通过电话号码查询GAL。我的建议是您忘记使用EWS,而直接查询目录,例如GAL中的任何内容都只是用户或联系人对象的Active Directory属性,因此您可以使用LDAP直接查询目录,或者如果您使用Office365,则可以使用Graph API做同样的事情。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句