Pergunta

Em EWS API gerenciado é mais fácil criar uma nomeação para um usuário específico:

ExchangeService service = new ExchangeService();
service.Credentials = new NetworkCredentials ( "administrator", "password", "domain" );
service.AutodiscoverUrl(emailAddress);

Appointment appointment = new Appointment(service);
appointment.Subject = "Testing";
appointment.Start = DateTime.Now;
appointment.End = appointment.Start.AddHours(1);
appointment.Save();

Isto irá criar uma nomeação para o administrador. Mas digamos que eu queria realmente criar uma nomeação para outro usuário (não adicionar esse usuário como um participante para mim nomeação). É isso possível através da API Gerenciado EWS?

Foi útil?

Solução 3

Eu descobri-lo a partir deste artigo: http://msdn.microsoft.com/en-us/ biblioteca / dd633680 (EXCHG.80) .aspx

Você deve usar o atributo service.ImpersonatedUserId.

Outras dicas

Folder inboxFolder = Folder.Bind(service, new FolderId(WellKnownFolderName.Inbox, "user1@example.com"));

Irá trabalhar também. Em seguida, passe inboxFolder.id à chamada Appointment.Save. As atualizações e exclusões não precisa disso. A melhor resposta é usar impersonate, mas isso requer que ele seja habilitado pelos administradores do servidor. Se você não wield tal poder, este método vai deixar você fazer o que você precisa. Nota: o usuário que executa o aplicativo deve ter permissões na conta de destino ou isso irá falhar (como deveria).

Encontrado aqui: http://msdn.microsoft.com/en -us / library / gg274408 (v = EXCHG.80) .aspx

Eu sei que este foi respondida, mas em resposta a @ o comentário de Aamir você pode fazer isso usando delegados Acabei de fazer isso para um projeto que estou trabalhando.

Como @ Matt sugeriu em sua resposta que você pode alterar o método Save da nomeação para apontar para os outros usuários pasta que neste caso seria Calendar.

código ficaria como abaixo

Appointment appointment = new Appointment(service);
appointment.Subject = "Testing";
appointment.Start = DateTime.Now;
appointment.End = appointment.Start.AddHours(1);
appointment.Save(new FolderId(WellKnownFolderName.Calendar, new Mailbox(_EmailAddress)));

Espero que ajude

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