c# - 如何通过 Microsoft.Exchange.WebServices 获取 GAL id 并使用 FindPeople
问题描述
我想就以下问题寻求帮助:
使用:c#、Microsoft.Exchange.WebServices、ExchangeServer 2013 SP1
- 是否可以通过使用 c# + Microsoft.Exchange.WebServices 获取 GAL 的 ID?我发现的唯一可能性是我需要在 Exchange 命令行管理程序中使用“Get-GlobalAddressList cmdlet https://technet.microsoft.com/en-us/library/aa996579(v=exchg.160).aspx 。
我更喜欢通过 c# 检索它,但我找不到任何有关它的信息。
- 查询 GAL - 检索所有项目。进行研究我发现了两种方法 - 有用的方法:
a) service.ResolveName - 经过一些小的调整 b) 服务。FindPeople - 未测试,因为我没有 GAL 的 id。有人可以告诉我这是否比“a”更好,并提供在 c# 中的使用示例
还有其他方法可以从 GAL 获取所有项目吗?教程、文章或代码示例的任何链接?
解决方案
如果是 OnPrem Exchange,您可以直接使用 LDAP https://www.c-sharpcorner.com/article/accessing-global-address-list-via-system-directoryservices-n/查询活动目录。您无法使用 EWS 托管 API 获取 GAL 的 ID,您可以使用离线通讯簿https://gsexdev.blogspot.com/2013/06/ews-findpeople-workaround-for-reading.html。如果是 Office365,那么 Graph API 将是一个更好的选择。
推荐阅读
- office-js - addHandlerAsync 在桌面上使用 pop-out 时抛出错误
- sql-server - GIT - SSIS DB 生产服务器不同步(没有提交的部署)
- angular - 在表格Angular 8中添加链接
- python - 为不同的进程向 mp.Pool() 传递不同的参数
- shell - 将文件从一个目录复制到詹金斯主机中的另一个目录
- azure-active-directory - 无法使用 Microsoft 图形 API 获取另一个租户的组信息
- scala - 如何将列表添加到馈线
- c# - 错误 CS0103:当前上下文中不存在名称“IsInRole”
- ios - 为什么只显示集合视图的一半?
- python - 无法从 anaconda 启动 Jupyter