我正在开发面向MOSS 2007网站的公众,该网站使用ViewFormPagesLockDown功能阻止匿名用户访问标准列表表单。我不想失去此功能提供的额外安全性,但有一些列表,匿名用户应该有权访问这些表单。
我可以在列表设置,列表模板或功能代码中做些什么来阻止特定列表或表单要求SPBasePermissions.ViewFormPages吗?
答案 0 :(得分:1)
我无法找到解决办法。对LockDown功能的支持似乎已经融入到表单类中。相反,我们所做的是创建一个单独的页面,其中包含自己的ListFormWebPart。以下是对我们内部博客中的条目的修改,其中概述了允许匿名用户将新项目添加到列表的步骤:
在“列表设置”中,转到“高级设置”。确保将“读取权限”设置为“所有项目”。返回“列表设置”,然后选择此列表的权限。通过选择Actions>中断网站的继承。编辑权限。注意:如果您看到名称左侧的复选框,则此步骤已完成。设置自定义权限后,选择设置>匿名访问。选中Add Items,然后单击OK。要完成匿名访问,请返回设置>高级设置,重置以选择仅对读取访问权限和编辑权限进行自己的操作,然后单击“确定”。
使用网站操作>创建新网页创建页面。打开网站SharePoint Designer。右键单击新创建的页面,然后选择从页面布局中分离。将光标定位在Web部件区域中,然后选择插入> SharePoint控件>自定义列表表单。选择适当的列表和新项目表单,然后单击“确定”。在“代码”窗格中,从ListItem到Webs新创建的DataFormWebPart中的change DataSourceMode。保留ListItem的默认设置,匿名用户将获得“拒绝访问。您无权执行此操作或访问此资源”错误。在浏览器中保存并查看页面。
为获得最佳效果,请仅在开发服务器上使用SharePoint Designer。要将WebPart迁移到生产环境,请在浏览器中的“开发”服务器上打开该页面,然后从“WebPart”菜单中选择“导出”。保存WebPart文件。在浏览器中打开生产服务器上的页面,然后从“网站操作”中选择“编辑页面”。从页面工具栏上的菜单中,选择页面>添加Web部件>进口。输入从开发服务器保存的WebPart文件的位置,然后单击上载。接下来,将导入的WebPart从右侧的工具窗格拖动到所需的WebPart区域。要保存页面,请单击“发布”。
答案 1 :(得分:1)
一个较旧的问题,但我想我会添加另一个可以用来执行此操作的选项。
<强>解决方案:强>
正如Rich在列表中提到了break权限继承。
关闭ViewFormPagesLockDown功能。
将匿名用户设置为可以访问列表。
切换ViewFormPagesLockDown功能。
匿名用户现在应该只能访问列表的应用程序页面。
为什么: ViewFormPagesLockDown功能从“受限访问”权限角色中删除“查看应用程序页面”和“使用远程接口”权限。但是,匿名用户在切换匿名访问选项之前不会获取对该角色的更改。这适用于站点或列表级别。 因此,如果您希望特定的Web或列表对应用程序页面具有不同的匿名访问权限,则可以使用上述解决方案来更改它。