Pergunta

Alguém delegados com serviços web exchnage usado? Eu gostaria de um usuário para ser capaz de controlar calendários de outros usuários no Exchange. Eu estou achando este problema de ser um pouco complicado, e eu gostaria de ver como os outros têm sido capazes de fazê-lo funcionar corretamente.

Foi útil?

Solução

Eu estou apenas começando aqui, mas eu consegui obter acesso aos calendários de recursos por meio de uma conta de delegado.

Eu usei as recomendações do este artigo sobre conta de delegado e recurso contas. (Contas de recursos são complicadas porque eles estão desativado no AD, e você tem que usar uma conta de delegado para obter acesso a eles)

Depois de configurar a conta de delegado no servidor, eu configurar o ExchangeServerBinding usando as credenciais da conta de delegado:

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");

(imagem do servidor virtual Eu estou usando Microsofts preparado para testar )

Em seguida, ao acessar a caixa de correio, eu configurar uma solicitação FindItemType e usar o endereço SMTP da conta i deseja acessar:

// 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);

Assim, em breve:

  1. Configuração de uma conta com acesso de delegado no servidor do Exchange, isso pode ser feito via OWA ou com um script Shell troca
  2. Use a conta com acesso de delegado no objeto ExchangeServiceBinding
  3. conta de destino do Access usando um FindItemType com a conta de destino SMTP-addres como EmailAddressType

Saudações Jesper Hauge

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top