Pregunta

En EWS API administrada es que sea fácil crear una cita para un usuario 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();

Esto creará una cita para el administrador. Pero decir que quería crear en realidad una cita para otro usuario (no añadir ese usuario como un asistente me cita). Es esto posible a través de la API de EWS Managed?

¿Fue útil?

Solución 3

he descubierto de este artículo: http://msdn.microsoft.com/en-us/ biblioteca / dd633680 (EXCHG.80) .aspx

Se debe utilizar el atributo service.ImpersonatedUserId.

Otros consejos

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

también funcionará. A continuación, pasar a la llamada inboxFolder.id Appointment.Save. Las actualizaciones y eliminaciones no necesitan esto. La mejor respuesta es el uso de suplantar, pero esto requiere que esté habilitado por los administradores del servidor. Si no ejercer ese poder, este método le permitirá hacer lo que necesita. Nota: el usuario que ejecuta la aplicación debe tener permisos en la cuenta de destino o se producirá un error (como debería).

Encontrados aquí: http://msdn.microsoft.com/en -US / library / gg274408 (v = EXCHG.80) .aspx

Sé que esto ha sido contestada pero en respuesta a @ comentarios de Aamir Esto se puede hacer utilizando los delegados que acabo de hacer para un proyecto que estoy trabajando.

Como @ Matt sugirió en su respuesta que puede modificar el método de la cita guardar para que apunte a la carpeta de otros usuarios que en este caso sería Calendario.

Código se vería de la siguiente manera

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 ayude

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top