在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?

有帮助吗?

解决方案 3

我计算出来从这篇文章: http://msdn.microsoft.com/en-us/库/ dd633680(EXCHG.80)的.aspx

您应该使用service.ImpersonatedUserId属性。

其他提示

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

也能工作。 然后通过inboxFolder.id到Appointment.Save通话。该更新和删除不需要这个。 最好的答案就是用冒充,但这需要它由服务器管理员启用。如果你不挥舞这样的实力,这种方法可以让你做到你所需要的。 注:在运行应用程序的用户必须有权对目标账户或本会失败(因为它应该)。

这里实测值: http://msdn.microsoft.com/en -us /库/ gg274408(v = EXCHG.80)的.aspx

我知道这已经回答了,但在回答@阿米尔的评论,你可以做到这一点使用委托我只是做了一个项目我工作。

作为@马特在他的回答表明,你可以修改保存约会的方法来指向其他用户的文件夹,在这种情况下,将日历。

代码看起来如下

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

希望帮助

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top