使用EWS托管API来为其他用户创建的约会呢?
-
19-09-2019 - |
题
在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)));
希望帮助
不隶属于 StackOverflow