2016-06-29 23 views
5

Tôi đang tạo ứng dụng đơn giản để lên lịch cuộc hẹn và tôi muốn triển khai khả năng để tạo cuộc hẹn cho người dùng của mình.Tạo cuộc hẹn trên lịch của máy chủ Exchange với tư cách người dùng khác mà không mạo danh (EWS)

tôi quản lý để tạo, cập nhật và xóa lịch của tôi trên Exchange Server, và tôi hơi quản lý để tạo ra các cuộc hẹn thêm đồng nghiệp của tôi như RequiredAttendees như vậy:

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

Nhưng nó chỉ là thiết lập ông là người tham dự được yêu cầu. Điều tiếp theo là tôi đã thử sử dụng mạo danh, nhưng tôi không thể truy cập máy chủ lưu trữ để đặt bản thân làm chủ và những người khác phải chia sẻ lịch với tôi (do quyền và nội dung) vì vậy tôi cũng phải xóa nội dung đó. Ngoài ra, anh ấy đặt tôi làm tác giả xuất bản của anh ấy trên lịch của anh ấy. Có điều gì tôi thiếu hoặc không thể tìm thấy trên các trang web MSDN không?

EDIT: Tôi có thể tạo cuộc hẹn trong lịch của anh ấy trong outlok.

Trả lời

5

Nếu bất cứ ai đi qua vấn đề tương tự như tôi đã làm trong đây hãy làm theo các bước sau:

  1. Hãy chắc chắn rằng người mà bạn đang tạo hẹn bạn đặt ra (trên máy chủ trao đổi hoặc trong outlok là "Editing tác giả" với tất cả các quyền.

  2. Sau đó bạn có thể tạo các cuộc hẹn cho anh ta (xác minh điều này bằng cách vào outlok của bạn và tạo ra một số cuộc hẹn kiểm tra).

Mã này làm việc cho tôi:

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

Chúc may mắn :)

+1

"Editing tác giả" không tồn tại theo trang web MS: https://technet.microsoft.com/de-de/library /ff522363(v=exchg.160).aspx - Nhưng giải pháp hoạt động! +1 –

+0

@Al Bundy Vâng, tại một thời điểm tôi thấy rằng có rất ít phiên bản tài liệu ở đâu đó ở độ sâu của internet, nhưng quản lý để tìm giải pháp bằng cách nào đó. Tôi vui vì nó đã giúp :) – Kadaj

Các vấn đề liên quan