我有这个使用EWS访问邮件的应用程序,使用标准的/EWS/Exchange.asmx SOAP端点。
我的用户的邮件服务器受Microsoft Forefront保护,并且初始HTTP请求
https://server_name/EWS/Exchange.asmx
被重定向(HTTP 302)到:
https://server_name/
CookieAuth.dll?GetLogon?curl=Z2FEWSZ2FExchange.asmx&reason=0&formdir=3
这是一个常规的HTML页面,我想,其中的一点是让用户“手动”进行身份验证。
直到今天我还没有听说过Forefront,不知道如何处理它。
这是Forefront的正常行为(即它总是重定向初始HTTP请求),还是由我的应用程序中的某些内容触发?例如,user-agent?
如果这是正常的,我该如何通过此页面访问/EWS/Exchange.asmx?
如果它是由我的应用程序正在执行的操作触发的,我该如何找出它是什么?
我的代码在Android上运行,并在不使用任何SOAP库的情况下形成自己的XML请求。在传输级别,我使用Apache HTTP客户端组件。该代码适用于Office 365 / Exchange Online,并根据用户报告,使用NTLM“自托管”企业Exchange服务器。
然而,在这种情况下,我甚至没有获得HTTP 401:HTTP 302是由第一次HTTP往返返回的。
尝试使用基本身份验证抢先验证初始请求没有任何区别。
报告此问题的用户还提到另一个基于EWS的应用程序正常运行,因此必须有解决方案。