2015-01-20 1 views
0

У нас есть существующая реализация, которая подписывается через уведомления EWS Managed API о push-уведомлениях для календаря пользователя в Office 365 Exchange Online.Можно ли подписаться на push-уведомления для календаря ресурсов Exchange-сервера

PushSubscription pushSubscription = exchangeService.SubscribeToPushNotifications(
    new FolderId[] { WellKnownFolderName.Calendar }, 
    new Uri(callbackEndpoint), statusFrequency, null, 
    EventType.Created, EventType.Deleted, EventType.Modified, 
    EventType.Moved, EventType.Copied, EventType.FreeBusyChanged); 

За исключением subscription not being able to last forever, в противном случае штраф; встречи, запланированные в календаре, отправляют уведомления в наш веб-сервис.

Теперь вместо мониторинга событий с точки зрения почтового ящика пользователя нам интересно, можно ли подписаться с перспективы почтового ящика ресурса комнаты.

// Set room mailbox address. 
exchangeService.ImpersonatedUserId = new ImpersonatedUserId(ConnectingIdType.SmtpAddress, roomAddress); 

PushSubscription pushSubscription = exchangeService.SubscribeToPushNotifications(
    new FolderId[] { WellKnownFolderName.Calendar }, 
    new Uri(callbackEndpoint), statusFrequency, null, 
    EventType.Created, EventType.Deleted, EventType.Modified, 
    EventType.Moved, EventType.Copied, EventType.FreeBusyChanged); 

К сожалению, это не получится быть так просто,

The request failed. The remote server returned an error: (457) https://autodiscover-s.outlook.com/owa/domain.onmicrosoft.com .

Я не могу найти в глубине материала объяснить, что ошибка 457 на самом деле есть, и как преодолеть эту проблему.

Кроме того, я не нашел никого другого, пытающегося подписки на почтовые ящики ресурсов. Это потому, что это невозможно, или просто никто никогда не нашел нужды?

UPDATE

Пробовал с помощью EWSEditor tool, чтобы увидеть, какие виды дополнительных деталей может быть пронюхали; похоже, что выдавать себя за почтовый ящик комнаты требует своего рода специального разрешения.

Exception details: Message: The account does not have permission to impersonate the requested user. Type: Microsoft.Exchange.WebServices.Data.ServiceResponseException Source: Microsoft.Exchange.WebServices ErrorCode: ErrorImpersonateUserDenied ErrorMessage: The account does not have permission to impersonate the requested user. Stack Trace: at Microsoft.Exchange.WebServices.Data.ServiceRequestBase.ProcessWebException(WebException webException) at Microsoft.Exchange.WebServices.Data.ServiceRequestBase.GetEwsHttpWebResponse(IEwsHttpWebRequest request) at Microsoft.Exchange.WebServices.Data.ServiceRequestBase.ValidateAndEmitRequest(IEwsHttpWebRequest& request) at Microsoft.Exchange.WebServices.Data.MultiResponseServiceRequest 1.Execute() at Microsoft.Exchange.WebServices.Data.ExchangeService.InternalConvertIds(IEnumerable 1 ids, IdFormat destinationFormat, ServiceErrorHandling errorHandling)
at Microsoft.Exchange.WebServices.Data.ExchangeService.ConvertIds(IEnumerable 1 ids, IdFormat destinationFormat) at EWSEditor.Common.Extensions.ExchangeServiceExtensions.TestExchangeService(ExchangeService service)

Я попытался назначить полный доступ для делегирования почтовых ящиков в интерфейсе администратора Office 365, но это, кажется, не делать никаких одолжений.

ответ

0

Похоже, что ключ к тому, чтобы это произошло, дает возможность олицетворения назначенной учетной записи службы.

http://blogs.msdn.com/b/pareshj/archive/2011/11/29/exchange-web-services-fail-using-impersonation-to-access-mailboxes.aspx

http://msdn.microsoft.com/en-us/library/bb204095.aspx

После того, как это делается для организации учета и выдвинутого учетной записи пользователя, взаимодействуя с EWS с олицетворенного номер почтового ящика, и подписываться, становится возможным.

Смежные вопросы