gpt4 book ai didi

office365 - Office 365 EWS 不返回 X-BackendOverrideCookie

转载 作者:行者123 更新时间:2023-12-04 19:51:37 25 4
gpt4 key购买 nike

Office 365 不会在响应 header 中返回 X-BackendOverrideCookie。

我在请求 header 中正确设置了 X-AnchorMailbox 和 X-PreferServerAffinity。这不会触发 X-BackendOverrideCookie 返回,正如 MSDN 中所说。为什么会这样?

同时,我在内部部署的 Exchange 2016 上尝试了同样的事情。在这里我什至没有设置 X-AnchorMailbox 和 X-PreferServerAffinity,我在每个响应中都返回了 X-BackendOverrideCookie。这也不好,因为我需要管理拉取和推送通知组的关联性,并且我需要在需要时设置此 cookie,而不是在默认情况下始终设置它。

编辑 1:

流程是这样的。我正在使用 JS 发送订阅请求。为此,我使用 lather将我的请求包装成 SOAP 格式。

这是该操作的样子:

var impersonate = ‘myroomresource@mydomain.com’

var subscribe = {
"m:Subscribe": {
"m:PullSubscriptionRequest": {
"t:FolderIds": {
"t:DistinguishedFolderId": {
attributes: [{
'Id': this.distinguishedFolderId
}]
}
},
"t:EventTypes": [{
"t:EventType": "CreatedEvent"
}, {
"t:EventType": "DeletedEvent"
}, {
"t:EventType": "ModifiedEvent"
}],
"t:Timeout": "10"
}
}
};


soapHeader = {
“t:ExchangeImpersonation": {
"t:ConnectingSID": {
't:SmtpAddress': impersonate
}
}
}

lather.up({
body : requestName,
headers : {
Authorization : lather.basicAuth(this.username, this.password),
'X-AnchorMailbox': impersonate,
'X-PreferServerAffinity': true
},
additionalNamespaces : [
'xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages"',
'xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types"',
],
soapHeader : soapHeader,
method : 'POST',
url : ‘https://outlook.office365.com/EWS/Exchange.asmx',
}, function(error, res, body) {
// Process the response
})

当它执行时,请求被形成并发送出去。当我查看发出的原始请求时,我确认 header 已就位。
headers: 
{ Authorization: 'Basic c29m…’, (shortened just in case)
'X-AnchorMailbox': ‘myroomresource@mydomain.com', (fake mail)
'X-PreferServerAffinity': true,
'Content-Length': 971,
'Content-Type': 'text/xml; charset=utf-8',
host: 'outlook.office365.com' }

然后我从 Office 收到以下回复。

响应的正文:(缩短 Id,以防万一)
<?xml version="1.0" encoding="utf-8"?><s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Header><h:ServerVersionInfo MajorVersion="15" MinorVersion="1" MajorBuildNumber="693" MinorBuildNumber="12" Version="V2016_10_10" xmlns:h="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/></s:Header><s:Body><m:SubscribeResponse xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types"><m:ResponseMessages><m:SubscribeResponseMessage ResponseClass=“Success”><m:ResponseCode>NoError</m:ResponseCode><m:SubscriptionId>KQB2aTFwcjA…wucsA==</m:SubscriptionId><m:Watermark>AQAAAFQ+2wmbaZF…JAAAAAAA=</m:Watermark></m:SubscribeResponseMessage></m:ResponseMessages></m:SubscribeResponse></s:Body></s:Envelope>

响应的 header 是:(缩短的 Ids,cookie)
{ 'cache-control': 'private',
'transfer-encoding': 'chunked',
'content-type': 'text/xml; charset=utf-8',
server: 'Microsoft-IIS/8.5',
'request-id': ‘2881ab3…1ec461’,
'x-calculatedbetarget': 'VI1PR0501MB2096.eurprd05.prod.outlook.com',
'x-backendhttpstatus': '200',
'set-cookie': [ ‘exchangecookie=d8f8…1e8; expires=Sat, 28-Oct-2017 08:41:27 GMT; path=/; HttpOnly' ],
'x-ewshandler': 'Subscribe',
'x-aspnet-version': '4.0.30319',
'x-diaginfo': 'VI1PR0501MB2096',
'x-beserver': 'VI1PR0501MB2096',
'x-powered-by': 'ASP.NET',
'x-feserver': 'VI1PR0901CA0093',
date: 'Fri, 28 Oct 2016 08:41:26 GMT' }

如您所见,我只得到交换 cookie,而没有 X-BackendOverrideCookie。关于发生了什么的任何想法?难道我做错了什么?

编辑 2 :

我也用 EWSEditor 试过这个。设置两个 header ,并提出拉订阅请求。我得到与这里相同的结果。

编辑 3:

这是完整的 request

最佳答案

您的问题不包括 SOAP header ,但如果您遇到与我相同的问题,那么问题在于这些 header 中的 RequestServerVersion 参数。

具体来说,您需要包含以下内容:

<soap:Header>
<t:RequestServerVersion Version="Exchange2013_SP1"/>
</soap:Header>

重要的部分是 Exchange2013_SP1。如果没有 _SP1,Office365 不会在响应中包含“X-BackendOverrideCookie”cookie。

关于office365 - Office 365 EWS 不返回 X-BackendOverrideCookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40238672/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com