【问题标题】:EWS API - Create calendar and share with reviewer permissionsEWS API - 创建日历并与审阅者权限共享
【发布时间】:2017-02-15 23:59:03
【问题描述】:

我在使用 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”具有正确的权限。

问题是:审阅者的帐户中没有显示日历。

【问题讨论】:

  • “不显示在审阅者的帐户中”是什么意思?审阅者可以使用 Outlook 打开日历吗?文件 -> 打开 -> 其他用户文件夹。
  • 好吧,我尝试使用审阅者帐户打开他的日历,但没有成功,但无论如何我想与 EWS API 共享日历,而不需要使用 Outlook 来完成该过程。跨度>
  • 我是否正确理解您要创建共享邀请消息?当您右键单击日历并选择共享 -> 共享日历时 Outlook 创建的日历?
  • 正确,这正是我想要做的!

标签: c# exchange-server exchangewebservices


【解决方案1】:

你必须做两件事:

设置适当的权限:

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

然后,发送邀请消息。现在,这是困难的部分。消息格式在[MS-OXSHARE]: Sharing Message Object Protocol Specification 中指定。扩展属性在[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");

【讨论】:

  • 如何获取此类值:PidNameXSharingProviderGuid、PidLidSharingFlavor、PidNameXSharingFlavor、PidLidSharingCapabilities、PidNameXSharingCapabilities 等?
  • 添加了一个关于如何设置项目属性的示例。
  • 我应该在哪里看到那些“somevalues”必须是什么? ://
  • 嗯,这是我在答案中写的规范中指定的。
【解决方案2】:

我想出了如何通过 EWS 以编程方式在组织内发送共享邀请。可能无法回答您的所有问题,但这是了解您必须深入了解实际操作的良好开端。 Heres the link

【讨论】:

    猜你喜欢
    • 2011-05-12
    • 1970-01-01
    • 2014-07-09
    • 2022-09-29
    • 1970-01-01
    • 1970-01-01
    • 2017-02-16
    • 2013-02-02
    • 1970-01-01
    相关资源
    最近更新 更多