无法让 Exchange EWS SDK 中的 AutodiscoverSample 工作 - 使用 Office 365 进行身份验证

Posted

技术标签:

【中文标题】无法让 Exchange EWS SDK 中的 AutodiscoverSample 工作 - 使用 Office 365 进行身份验证【英文标题】:Can't get the AutodiscoverSample in the Exchange EWS SDK to work - auth with Office 365 【发布时间】:2011-11-22 04:47:53 【问题描述】:

我下载了 Exchange Server 2010 SP1 SDK 以开始使用 Exchange Web 服务。

我做的第一件事是打开 AutodiscoverSample 以查看 Autodiscover 的工作原理。

我有两个 Exchange 帐户,每个帐户位于不同的 Exchange 系统上。

charlie@kindel.com 托管在 Exchange(Microsoft Edu/Friends & Family)上。

cek@fiinom.net 在 Office 365 上。

我无法让它连接到 Office 365 系统。

我可以在 Outlook 和 https://www.testexchangeconnectivity.com 网站上成功地自动发现。

如果运行示例:

AutodiscoverSample.exe charlie@kindel.com true charlie@kindel.com <password> kindel.com

效果很好。

如果我将示例运行为: AutodiscoverSample.exe cek@fiinom.net true cek@fiinom.net <password> fiinom.net

我明白了

=? Trying 'cek@fiinom.net' at 'https://autodiscover-s.outlook.com/autodiscover/autodiscover.xml'
-! Info: System.Net.WebException: The remote server returned an error: (401) Unauthorized.

谁能提供任何关于这里可能发生的事情以及我如何解决它的见解?

拥有 Office 365 帐户的其他人能否检查 AutodiscoverSample 是否适合您?

【问题讨论】:

FWIW,我意识到 Exchange 2010 SP1 SDK != EWS 1.1 SDK。我现在可以使用 EWS AutodiscoverService 类。但这并不能解释这个样本有什么问题。 【参考方案1】:

我不知道 AutodiscoverSample.exe 是如何工作的,但是通过处理我的代码(直接 Win HTTP)和 Office 365,自动发现将被重定向到不同的域(outlook.com),所以如果使用凭据缓存,你必须提供至少 2 个域的凭据,即使用户名/密码相同。

【讨论】:

以上是关于无法让 Exchange EWS SDK 中的 AutodiscoverSample 工作 - 使用 Office 365 进行身份验证的主要内容,如果未能解决你的问题,请参考以下文章

当我的应用程序托管在 IIS 上时,Microsoft Exchange Web 服务 (EWS) 无法正常工作

测试 Exchange Web 服务 (EWS) 网址

Powershell 访问Exchange EWS API

使用 EWS 访问存储在 Exchange 365 中存档文件夹中的邮件

具有基本身份验证的 Exchange Online 和 EWS 停止工作

EWS Managed Api 中的电子邮件对话/电子邮件线程支持(针对 Exchange 2010 左右)