12

在 EWS 托管 API 中,为特定用户创建约会很容易:

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

这将为管理员创建一个约会。但是假设我想实际为另一个用户创建约会(而不是将该用户作为与会者添加到我的约会中)。这可能通过 EWS 托管 API 实现吗?

4

3 回答 3

9
Folder inboxFolder = Folder.Bind(service, new FolderId(WellKnownFolderName.Inbox, "user1@example.com"));

也会工作。然后将 inboxFolder.id 传递给 Appointment.Save 调用。更新和删除不需要这个。最好的答案是使用模拟,但这需要服务器管理员启用它。如果你不使用这样的力量,这种方法会让你做你需要的。注意:运行您的应用程序的用户必须对目标帐户具有权限,否则这将失败(应该如此)。

在这里找到:http: //msdn.microsoft.com/en-us/library/gg274408 (v=EXCHG.80).aspx

于 2011-10-18T02:39:22.707 回答
8

我知道这已经得到解答,但在回答@Aamir 的评论时,您可以使用我刚刚为我正在从事的项目完成的委托来做到这一点。

正如@matt 在他的回答中建议的那样,您可以修改约会的保存方法以指向其他用户文件夹,在这种情况下为日历。

代码如下所示

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

希望有帮助

于 2014-02-11T16:29:18.090 回答
7

我从这篇文章中弄清楚了:http: //msdn.microsoft.com/en-us/library/dd633680 (EXCHG.80).aspx

您应该使用该service.ImpersonatedUserId属性。

于 2010-03-10T19:41:54.500 回答