我目前在多页会议工作区模板上进行一些测试,以检查它是否适合我们作为项目基础模板的需要。
您可能知道,多页会议工作区旨在管理单个工作区中的多个日期,并显示仅与特定日期相关的页面或应在每个日期显示的页面。
如果使用SharePoint Designer检查多页会议工作区,则可以看到有一个库,其中包含工作区的所有页面。每个日期显示的页面都存储在根文件夹中,仅在单个日期显示的页面存储在以相应日期命名的文件夹中。
所以现在我们来解决我的问题。为了设置每个日期显示的单个页面的权限,我遍历页面库以找到我想要更改权限的页面。奇怪的是,库的ListItemCollection假装包含我期望它包含的页数。但是当我然后迭代集合时,它只返回附加到实际日期的页面。它既不返回应在每个日期显示的页面,也不返回其他日期的页面。
我已经尝试使用SPSecruity.RunWithElevatedPrivilges()以及模拟作为系统帐户来获取页面。我还尝试通过命令行应用程序获取它们,而不使用任何上下文信息。似乎行为,您只能获取与特定日期相关的项目,后面跟着对象模型。
那么无论实际日期如何,我怎样才能得到多页会议工作区的所有页面?
答案 0 :(得分:1)
您可以通过编程方式在工作区创建时刻和事件集权限上捕获事件。您可能想了解有关event receivers或setting permissions programmatically的更多信息。
您提到的那些页面是添加到名为“会议系列”的列表中的项目 alt text http://img22.imageshack.us/img22/8963/ss20090528181724.png
它包含以下字段:
alt text http://img22.imageshack.us/img22/351/ss20090528181819.png alt text http://img22.imageshack.us/img22/7857/ss20090528181852.png
来自1个项目的示例数据(不是按照提到的列的顺序):
3 0x001C4383A41E441842A2A27CA249FED28F Meeting Series Recurrence 2009-05-28 18:11:20 2009-05-28 18:11:12 1073741823;#Sistēmas konts 1073741823;#Sistēmas konts 1 1 512 1.0 0 0 Recurrence Recurrence 3 100.000000000000 {A6E54DB5-3A60-464B-A9A0-D314B49C41E8} 3;#test2/Recurrence/Lists/Meeting Series/1_2.000 3;#test2/Recurrence/Lists/Meeting Series 3;#2009-05-28 18:11:20 3;#2009-05-28 18:11:20 3;#0 0x7fffffffffffffff 3;#1_2.000 3;#{6BE299E5-E81F-40A8-80B2-41494DF0353C} 3;# 3;#{965D0DB3-1AE0-4C23-B006-FB4FC1FE1AB7} 1_2.000 3 1_2.000 1_2.000 /test2/Recurrence/Lists/Meeting Series/1_2.000 http://test:10000/test2/Recurrence/Lists/Meeting%20Series/1_2.000 1_2 3;# 1 1 2 {D8839339-6DDA-48A6-B3B7-FBCA58C8B436} 2009-06-03 19:00:00 2009-06-03 19:00:00 (null) (null) (null) 0 1 (null) 0 0 0 2009-05-28 18:10:57 (null) http://test:10000/test2/Lists/Calendar, Kalendārs 2009-06-03 19:00:00
答案 1 :(得分:0)
仅当用户尝试访问这些事件时,才会创建此类事件的页面。这是设计的,我找到的唯一解决方案是尝试通过网站(或某些模拟)访问页面,然后尝试通过代码访问它们。
关于Flo的评论,我在Microsoft Sharepoint 2007 Development上释放了这个来源(sams,ISBN 0-672-32903-4)。在第101页上说:
注意
从定期会议中获取数据 可能很棘手。你可能会遇到 代码尝试的情况 访问会议的列表项 尚未发生的事件 在会议系列中提供 名单。确保个人 实例已经创建,你可以 向网站提出虚拟网页请求 实例的主页,例如: http://server/sites/mymeeting/default.aspx?InstanceID=20061012
如果您找到另一种方式,请发布它将为我们节省很多精力!!!