我正在为约会安排创建简单的应用程序,我想实现为我的用户创建约会的能力。
我设法在 Exchange Server 上创建、更新和删除我的日历,并且我设法创建约会,将我的同事添加为 RequiredAttendees,如下所示:
//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("myCollegue@mail.com");
meeting.ReminderMinutesBeforeStart = 60;
meeting.Save(new FolderId(WellKnownFolderName.Calendar,
"myCollegue@mail.com"),
SendInvitationsMode.SendToAllAndSaveCopy);
但这只是将他设置为必需的与会者。接下来我尝试使用模拟,但我无法访问托管服务器以将自己设置为主机,而其他人必须与我共享日历(由于权限和其他原因)所以我也不得不删除它。此外,他在他的日历上让我成为他的出版作者。 在 MSDN 站点上是否有我遗漏或找不到的东西?
编辑:我可以在他的 outlok 日历中创建约会。
最佳答案
如果有人遇到与我在这里遇到的相同问题,请按照以下步骤操作:
确保您为其创建约会的人将您设置为具有所有权限的“编辑作者”(在 Exchange 服务器上或在 outlok 中)。
之后您可以为他创建约会(通过转到您的 outlok 并创建一些测试约会来验证这一点)。
这段代码对我有用:
Folder inboxFolder = Folder.Bind(service, new FolderId(WellKnownFolderName.Calendar, "your.colleague@company.com"));
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);
祝你好运:)
关于c# - 在没有模拟的情况下以其他用户身份在 Exchange 服务器日历上创建约会 (EWS),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38094422/