2016-06-29 28 views
5

Tworzę prostą aplikację do planowania spotkań i chcę zaimplementować możliwość tworzenia spotkań dla moich użytkowników.Tworzenie spotkania w kalendarzu serwera Exchange jako inny użytkownik bez podszywania się pod inną osobę (EWS)

udało mi się tworzyć, aktualizować i usuwać mój kalendarz na Exchange Server, a ja nieco udało się stworzyć terminy dodawanie kolegom jak RequiredAttendees tak:

//service variable is being created using my credidentals 
Appointment meeting = new Appointment(service); 
meeting.Subject = "Some subject "; 
meeting.Body = "Some body."; 
meeting.Start = DateTime.Now; 
meeting.End = meeting.Start.AddHours(4); 
meeting.Location = "Some Location"; 
meeting.RequiredAttendees.Add("[email protected]"); 

meeting.ReminderMinutesBeforeStart = 60; 
meeting.Save(new FolderId(WellKnownFolderName.Calendar, 
    "[email protected]"), 
    SendInvitationsMode.SendToAllAndSaveCopy); 

Ale to jest po prostu ustawienie go jako uczestnika wymaganego. Następnie próbowałem używać personifikacji, ale nie mogę uzyskać dostępu do serwera hostingowego, aby ustawić się jako master i inni, aby udostępnić mi kalendarz (z powodu uprawnień i innych rzeczy), więc musiałem to zeskrobać. Poza tym ustawił mnie na swojego autora publikacji w swoim kalendarzu. Czy jest coś, czego mi brakuje lub czego nie można znaleźć na stronach MSDN?

EDYCJA: Jestem w stanie utworzyć spotkanie w jego kalendarzu na konspekcie.

Odpowiedz

5

Jeśli ktoś natknie samych problemów jak ja tu należy wykonać następujące kroki:

  1. Upewnij się, że osoba, dla której tworzysz spotkanie ustawia cię w górę (na serwerze Exchange lub w outlok jako „Montaż autor”ze wszystkimi uprawnieniami.

  2. Po tym można tworzyć terminy dla niego (to sprawdzić wchodząc do outlok i tworzenia pewnych terminów testowych).

Ten kod działa dla mnie:

Folder inboxFolder = Folder.Bind(service, new FolderId(WellKnownFolderName.Calendar, "[email protected]")); 
Appointment appointmentOther = new Appointment(service); 
appointmentOther.Subject = "Test 2"; 
appointmentOther.Body = "Body text"; 
appointmentOther.Start = DateTime.Now; 
appointmentOther.End = DateTime.Today.AddHours(16); 
appointmentOther.Location = "My Office"; 
appointmentOther.IsReminderSet = true; 
appointmentOther.ReminderMinutesBeforeStart = 30; 
appointmentOther.Save(inboxFolder.Id,SendInvitationsMode.SendToNone); 

Powodzenia :)

+1

"Montaż autor" nie istnieje zgodnie z witryny MS: https://technet.microsoft.com/de-de/library /ff522363(v=exchg.160).aspx - Ale rozwiązanie działa! +1 –

+0

@ Bund Bundy Tak, w pewnym momencie odkryłem, że istnieje kilka wersji dokumentacji gdzieś w głębi internetu, ale udało się jakoś znaleźć rozwiązanie. Cieszę się, że pomogło :) – Kadaj