EWS API -创建日历并与审阅者共享权限

本文关键字:共享 权限 API 创建 日历 EWS | 更新日期: 2023-09-27 18:09:30

我在上遇到了一些麻烦,使用Exchange Webservice API . net 创建和共享具有审查权限的日历。

现在这是我的代码:

Folder addCalendar = new Folder(service);
addCalendar.DisplayName = name;
addCalendar.FolderClass = "IPF.Appointment";
var perm = new FolderPermission(new UserId("reviewer@test.com"),
                            FolderPermissionLevel.Reviewer);
addCalendar.Permissions.Add(perm);
addCalendar.Save(WellKnownFolderName.MsgFolderRoot);

日历已创建,在我的帐户中我可以看到日历,用户'reviewer@test.com'具有正确的权限。

问题是:日历没有显示在审稿人的帐户上。

EWS API -创建日历并与审阅者共享权限

你必须做两件事:

设置适当的权限:

var folder = Folder.Bind(service, WellKnownFolderName.Calendar);
folder.Permissions.Add(new FolderPermission("someone@yourcompany.com", 
    FolderPermissionLevel.Reviewer));
folder.Update();

然后,发送邀请消息。现在,这是最难的部分。消息格式在[MS-OXSHARE]:共享消息对象协议规范中指定。扩展属性定义在[MS-OXPROPS]: Exchange Server Protocols Master Property List中。您需要根据该规范创建消息并将其发送给收件人。

编辑:

要设置元素的共享属性,使用扩展属性。

首先,定义属性。例如,PidLidSharingProviderGuidProperty定义如下:

private static readonly Guid PropertySetSharing = new Guid("{00062040-0000-0000-C000-000000000046}");
private static readonly ExtendedPropertyDefinition PidLidSharingProviderGuidProperty = new ExtendedPropertyDefinition(PropertySetSharing, 0x8A01, MapiPropertyType.CLSID);      
private static readonly ExtendedPropertyDefinition ConversationIdProperty = new ExtendedPropertyDefinition(0x3013, MapiPropertyType.Binary);

你可以使用SetExtendedProperty方法在新条目上设置属性:

item.SetExtendedProperty(PidLidSharingProviderGuidProperty, "somevalue");

我想出了如何通过EWS以编程方式在组织内发送共享邀请。可能不能回答你所有的问题,但这是一个很好的开始,让你了解你需要深入到什么程度。链接