Domanda

In EWS Managed API è facile creare un appuntamento per un utente specifico:

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

Questo creerà un appuntamento per l'amministratore.Ma dire che ho voluto creare effettivamente un appuntamento per un altro utente (non aggiungere l'utente come un partecipante a me appuntamento).È questo possibile, attraverso l'EWS Managed API?

È stato utile?

Soluzione 3

ho capito da questo articolo: http://msdn.microsoft.com/en-us/ biblioteca / dd633680 (EXCHG.80) aspx

Si dovrebbe utilizzare l'attributo service.ImpersonatedUserId.

Altri suggerimenti

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

Funzionerà anche. Poi passare inboxFolder.id alla chiamata Appointment.Save. Gli aggiornamenti e le eliminazioni non hanno bisogno di questo. La migliore risposta è quella di utilizzare impersonate, ma questo richiede che sia abilitata per gli amministratori del server. Se non esercitano un potere così, questo metodo consente di fare quello che ti serve. Nota: l'utente che esegue l'applicazione deve avere le autorizzazioni sul conto di destinazione o questo fallirà (come dovrebbe).

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

So che questo è stato risposto, ma in risposta a @Aamir commento è possibile farlo utilizzando i delegati che ho appena fatto per un progetto a cui sto lavorando.

Come @matt suggerito nella sua risposta, è possibile modificare il metodo di salvataggio della nomina a scegliere la cartella di altri utenti che in questo caso sarebbe Calendario.

Codice dovrebbe essere come di seguito

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

Speranza che aiuta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top