Soap 典型的ASP Exchange 401未经授权错误

Soap 典型的ASP Exchange 401未经授权错误,soap,vbscript,asp-classic,exchangewebservices,Soap,Vbscript,Asp Classic,Exchangewebservices,我遇到了一个问题,无法使用经典ASP通过SOAP使用Exchange EWS帖子设置约会 代码在大约50%的时间内有效;这取决于我试图为其设置约会的exchange用户 使用下面的代码,我指定了一些用户&约会创建得非常完美。当我指定其他用户时,它只返回401个未经授权的错误 我没有访问Exchange服务器的权限,因此我无法亲自检查用户设置,但有人告诉我他们的设置没有区别。我们的一位python开发人员能够使用NTLM身份验证使其工作。我不知道如何在下面的代码中实现这一点,也找不到任何示例 TA

我遇到了一个问题,无法使用经典ASP通过SOAP使用Exchange EWS帖子设置约会

代码在大约50%的时间内有效;这取决于我试图为其设置约会的exchange用户

使用下面的代码,我指定了一些用户&约会创建得非常完美。当我指定其他用户时,它只返回401个未经授权的错误

我没有访问Exchange服务器的权限,因此我无法亲自检查用户设置,但有人告诉我他们的设置没有区别。我们的一位python开发人员能够使用NTLM身份验证使其工作。我不知道如何在下面的代码中实现这一点,也找不到任何示例

TARGETURL="https://mail.foo.com/ews/exchange.asmx"
USERNAME="testuser1@foo.com"
PASSWORD="abc123"


reqStr = ""
reqStr = reqStr & "<?xml version='1.0' encoding='utf-8'?>"
reqStr = reqStr & "<soap:Envelope xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'" 
reqStr = reqStr & "       xmlns:m='http://schemas.microsoft.com/exchange/services/2006/messages'"
reqStr = reqStr & "       xmlns:t='http://schemas.microsoft.com/exchange/services/2006/types'"
reqStr = reqStr & "       xmlns:soap='http://schemas.xmlsoap.org/soap/envelope/'>"
reqStr = reqStr & "  <soap:Header>"
reqStr = reqStr & "    <t:RequestServerVersion Version='Exchange2007_SP1' />"
reqStr = reqStr & "    <t:TimeZoneContext>"
reqStr = reqStr & "      <t:TimeZoneDefinition Id='Eastern Standard Time' />"
reqStr = reqStr & "    </t:TimeZoneContext>"
reqStr = reqStr & "  </soap:Header>"
reqStr = reqStr & "  <soap:Body>"
reqStr = reqStr & "    <m:CreateItem SendMeetingInvitations='SendToNone'>"
reqStr = reqStr & "      <m:Items>"
reqStr = reqStr & "        <t:CalendarItem>"
reqStr = reqStr & "          <t:Subject>ABC Company Appointment</t:Subject>"
reqStr = reqStr & "          <t:Body BodyType='HTML'>Speak to discuss pricing</t:Body>"
reqStr = reqStr & "          <t:Start>2017-04-05T15:20:00.000Z</t:Start>"
reqStr = reqStr & "          <t:End>2017-04-05T16:20:00.000Z</t:End>"
reqStr = reqStr & "          <t:Location>Conference Room 1</t:Location>"
reqStr = reqStr & "          <t:MeetingTimeZone TimeZoneName='Eastern Standard Time' />"
reqStr = reqStr & "        </t:CalendarItem>"
reqStr = reqStr & "      </m:Items>"
reqStr = reqStr & "    </m:CreateItem>"
reqStr = reqStr & "  </soap:Body>"
reqStr = reqStr & "</soap:Envelope>"                        

'Perform the actual post
set oXMLHTTP=CreateObject("MSXML2.XMLHTTP")
set oXML=CreateObject("MSXML2.DOMDocument")


' Send the request
oXMLHTTP.Open "POST", TARGETURL, false, USERNAME, PASSWORD
oXMLHTTP.SetRequestHeader "Content-Type", "text/xml"
oXMLHTTP.Send reqStr 
TARGETURL=”https://mail.foo.com/ews/exchange.asmx"
用户名=”testuser1@foo.com"
PASSWORD=“abc123”
reqStr=“”
reqStr=reqStr&“
reqStr=reqStr&“
reqStr=reqStr&“
reqStr=reqStr&“
reqStr=reqStr&“
reqStr=reqStr&“
reqStr=reqStr&“
reqStr=reqStr&“
reqStr=reqStr&“
reqStr=reqStr&“
reqStr=reqStr&“
reqStr=reqStr&“
reqStr=reqStr&“ABC公司任命”
reqStr=reqStr&“谈论定价”
reqStr=reqStr&“2017-04-05T15:20:00.000Z”
reqStr=reqStr&“2017-04-05T16:20:00.000Z”
reqStr=reqStr&“第1会议室”
reqStr=reqStr&“
reqStr=reqStr&“
reqStr=reqStr&“
reqStr=reqStr&“
reqStr=reqStr&“
reqStr=reqStr&“
'执行实际的post
设置oXMLHTTP=CreateObject(“MSXML2.XMLHTTP”)
设置oXML=CreateObject(“MSXML2.DOMDocument”)
'发送请求
打开“POST”,TARGETURL,false,用户名,密码
oXMLHTTP.SetRequestHeader“内容类型”、“文本/xml”
发送请求

可能重复的可能重复的我浏览了这两篇文章,谢谢你提供的信息。但这并没有帮我解决问题。老实说,我不是100%确定问题的根源是NTLM,这只是我最好的猜测。到目前为止,我已经尝试了8个用户的凭据,5个工作,3个不工作。但是我可以通过web使用不需要的凭据登录outlook;我不在EWS邮报工作。非常令人沮丧。是的,谢谢。这就是解决办法。使用user@domain在大约50%的案例中有效。在100%的情况下使用域\用户工作。我不能说我理解为什么,但它现在工作得很好,这正是我所需要的。@RJS:你应该把它作为你问题的答案,并把它标记为解决方案,以帮助将来有同样问题的读者。