Utilizzando EWS Managed API per creare appuntamenti per gli altri utenti?
-
19-09-2019 - |
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?
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