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?

War es hilfreich?

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top