EWS Managed API Termine für andere Benutzer zu erstellen?
-
19-09-2019 - |
Frage
In EWS Managed API ist es einfach, einen Termin für einen bestimmten Benutzer zu erstellen:
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();
Dies wird einen Termin für den Administrator erstellen. Aber sagen wollte ich einen Termin tatsächlich schaffen für einen anderen Benutzer (nicht fügen Sie diesen Benutzer als Teilnehmer zu mir Termin). Es dies möglich über das EWS Managed API?
Lösung 3
Habe ich es aus diesem Artikel heraus: http://msdn.microsoft.com/en-us/ Bibliothek / dd633680 (EXCHG.80) aspx
Sie sollten das service.ImpersonatedUserId
Attribut verwenden.
Andere Tipps
Folder inboxFolder = Folder.Bind(service, new FolderId(WellKnownFolderName.Inbox, "user1@example.com"));
Wird arbeiten. Dann inboxFolder.id zum Appointment.Save Aufruf übergeben. Die Aktualisierungen und Löschungen nicht diese benötigen. Die beste Antwort ist impersonate zu verwenden, aber dies erfordert es von den Server-Administratoren aktiviert werden. Wenn Sie nicht über eine solche Macht ausüben, wird diese Methode können Sie tun, was Sie brauchen. Hinweis: der Benutzer Ihre Anwendung ausgeführt wird, muss Berechtigungen auf dem Zielkonto oder dies scheitern wird (wie es sein soll).
Gefunden hier: http://msdn.microsoft.com/en -US / library / gg274408 (v = EXCHG.80) aspx
Ich weiß, das beantwortet wurde, aber in der Antwort auf @ Aamirs Kommentar Sie dies mit Delegierten tun kann ich es nur für ein Projekt gemacht habe ich arbeite.
Wie @ Matt in seiner Antwort vorgeschlagen, dass Sie kann das Verfahren der Ernennung speichern ändern, um die anderen Benutzer-Ordner, die in diesem Fall wären Kalender zu zeigen.
-Code würde wie folgt aussehen
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)));
Ich hoffe, das hilft