Usando EWS API conseguiu criar compromissos para outros usuários?
-
19-09-2019 - |
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?
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