Чтобы передать X-BackEndOverrideCookie
в последующие запросы, либо:
- Используйте один и тот же
ExchangeService
для каждой подписки в той же группе. Это обрабатывает X-BackEndOverrideCookie
автоматически. - Используйте fre sh
ExchangeService
, но вручную скопируйте X-BackEndOverrideCookie
через свойство ExchangeService CookieContainer .
I рекомендую второй подход для обеспечения безопасности потоков. Если ваше приложение является долговременной службой, вам, вероятно, потребуется повторная попытка l oop для работы с неудавшимися подписками.
Чтобы передать X-BackEndOverrideCookie
вручную:
string backEndOverrideCookie =
service1.CookieContainer.GetCookies(service1.Url)["X-BackEndOverrideCookie"]?.Value;
...
if (!string.IsNullOrWhiteSpace(backEndOverrideCookie))
service2.CookieContainer.SetCookies(service2.Url, "X-BackEndOverrideCookie=" + backEndOverrideCookie);
Примечание: Назначение Credentials
сбрасывает CookieContainer
службы ExchangeService, и для OAuth вам нужно будет делать это регулярно. К счастью, есть простой обходной путь:
var cookieContainer = service.CookieContainer;
service.Credentials = new OAuthCredentials(authenticationResult.AccessToken);
service.CookieContainer = cookieContainer;