2008-10-09 6 views
1

Кто-нибудь использовал делегатов с веб-службами exchnage? Я хотел бы, чтобы один пользователь мог управлять календарями других пользователей в Exchange. Я считаю, что эта проблема немного сложна, и я хотел бы видеть, как другие смогли заставить ее работать правильно.Использование делегатов с веб-службами Exchange

ответ

3

Я только начинаю здесь, но мне удалось получить доступ к Календари ресурсов через счет делегата.

Я использовал рекомендации от this article о счетах участников и ресурсных счетов. (Учетные записи ресурсов сложны, потому что они отключены в AD, и вы должны использовать учетную запись делегата для доступа к ним)

После настройки учетной записи делегата на сервере я настроил ExchangeServerBinding, используя учетные данные делегат счет:

ExchangeServiceBinding binding = new ExchangeServiceBinding(); 
binding.Url = @"https://dc1.litwareinc.com/ews/exchange.asmx"; 
// Setup binding with username and password of the delegate account 
binding.Credentials = 
    new NetworkCredential(delegateuserName, delegatepassword, "litwareinc.com"); 

(Я использую Microsofts подготовил образ виртуального сервера для тестирования)

Тогда при доступе к почтовому ящику, я создал запрос FindItemType и использовать SMTP-адрес учетной записи Я хочу получить доступ:

// Prepare request 
var findItemRequest = new FindItemType(); 
// Setup the mailbox using the smtp address of the account wanted 
var mailbox = new EmailAddressType {EmailAddress = mailboxId}; 
findItemRequest.ParentFolderIds = 
    new[] {new DistinguishedFolderIdType {Mailbox = mailbox}}; 
((DistinguishedFolderIdType) findItemRequest.ParentFolderIds[0]).Id = 
    DistinguishedFolderIdNameType.calendar; 
findItemRequest.Traversal = ItemQueryTraversalType.Shallow; 

// Add ItemResponseShapeType and Calendarview to request here ... 

// The create a FindItemResponseType using the binding and the request 
var response = binding.FindItem(findItemRequest); 

Так короче:

  1. Настройка учетной записи с доступом делегата на сервере Exchange, это может быть сделано с помощью OWA или с помощью сценария командной консоли Exchange
  2. Используйте учетную запись с доступом делегата на объект ExchangeServiceBinding
  3. целевого доступа с использованием учетной записи FindItemType с целевой учетной записи SMTP-EmailAddressType как Адресная

С уважением Jesper Hauge