Exchange server 使用EWS托管API为其他用户创建约会?

Exchange server 使用EWS托管API为其他用户创建约会?,exchange-server,exchangewebservices,ews-managed-api,Exchange Server,Exchangewebservices,Ews Managed Api,在EWS托管API中,为特定用户创建约会很容易: ExchangeService service = new ExchangeService(); service.Credentials = new NetworkCredentials ( "administrator", "password", "domain" ); service.AutodiscoverUrl(emailAddress); Appointment appointment = new Appointment(servic

在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实现这一点?

我从本文中了解到:

您应该使用
服务.ImpersonatedUserId
属性

Folder inboxFolder = Folder.Bind(service, new FolderId(WellKnownFolderName.Inbox, "user1@example.com"));
这也行。 然后将inboxFolder.id传递给约会保存呼叫。更新和删除不需要这个。 最好的答案是使用模拟,但这需要服务器管理员启用它。如果你不使用这种权力,这种方法会让你做你需要的事情。 注意:运行应用程序的用户必须对目标帐户具有权限,否则将失败(应该如此)


在这里找到:

我知道这个问题已经得到了回答,但在回答@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)));

希望这对阿尔弗雷德有所帮助。你能告诉我托管API DLL到底安装在哪里吗。“我在我的机器上任何地方都找不到它……非常感谢。”Brumcouse。你应该发布一个新问题,而不是评论。无论如何,托管API DLL未随Exchange Server一起安装。您必须从Microsoft下载并安装到您的计算机上。截至目前,按照Alfred的指示,最新版本可在@brumcouse中找到。DLL将位于与此类似的位置:C:\Program Files\Microsoft\Exchange\Web Services\2.2任何可能的情况下,都可以使用委派来完成此操作。我知道我们可以使用EWS API创建和管理委派,但不知道是否有方法使用委派创建约会等,谢谢!可以,但必须是WellKnownFolderName.Calendar,而不是WellKnownFolderName.Inbox。