2010-03-02 73 views
0

我正在使用ViewFormPagesLockDown功能来阻止匿名用户访问标准列表表单的面向公众的MOSS 2007网站上工作。我不想失去此功能提供的额外安全性,但有一些列表,匿名用户应该可以访问表单。ViewFormPagesLockDown并排除特定列表/页

有什么我可以在列表设置,列表模板或功能代码中做什么,以停止特定列表或窗体需要SPBasePermissions.ViewFormPages?

回答

1

我无法找到解决办法。 LockDown功能的支持似乎被烘焙到表单类中。相反,我们所做的是创建一个单独的页面,并拥有自己的ListFormWebPart。以下是我们内部博客的一个条目改编,其中列出了允许匿名用户将新项目添加到列表的步骤:

在列表设置中,转到高级设置。确保读取权限设置为全部项目。返回到列表设置并选择此列表的权限。通过选择“操作”>“编辑权限”来中断站点的继承。注意:如果您看到名称左侧的复选框,则此步骤已完成。一旦设置了自定义权限,请选择设置>匿名访问。选中添加项目,然后单击确定。要完成匿名访问,请返回到“设置”>“高级设置”,并重置为选择“只有自己拥有读取访问权限和编辑访问权限”,然后单击“确定”。

使用网站操作>创建页面创建新页面。打开网站SharePoint Designer。右键单击新创建的页面,然后选择从页面布局分离。将光标放在Web部件区域中,然后选择“插入”>“SharePoint控件”>“自定义列表表单”。选择适当的清单和新建物料表格,然后点击确定。在代码窗格中,change DataSourceMode在从ListItem到Web的新创建的DataFormWebPart中。离开ListItem的默认设置,匿名用户会得到“拒绝访问,您没有权限执行此操作或访问此资源”错误。在浏览器中保存并查看页面。

为获得最佳结果,请仅在开发服务器上使用SharePoint Designer。要将WebPart迁移到生产环境,请在浏览器的Development服务器上打开该页面,然后从WebPart菜单中选择Export。保存WebPart文件。在浏览器中打开生产服务器上的页面,然后从网站操作中选择编辑页面。从页面工具栏上的菜单中,选择页面>添加Web部件>导入。输入从开发服务器保存的WebPart文件的位置,然后单击上传。接下来,将导入的WebPart从右侧的工具窗格拖到所需的WebPart区域中。要保存该页面,请单击发布。

1

一个老问题,但我想我会添加另一个选项,你可以用它来做到这一点。

解决方案: 由于Rich在列表中提到了中断权限继承。 关闭ViewFormPagesLockDown功能。
设置匿名用户有权访问列表。 打开ViewFormPagesLockDown功能。

匿名用户现在应该只能访问列表的应用程序页面。

的理由: 的ViewFormPagesLockDown功能消除“查看应用程序页面”和“使用远程接口”权限从“受限访问”权限的角色。但是,在切换匿名访问选项之前,匿名用户不会选择对该角色所做的更改。这可以在网站或列表级别上运行。 因此,如果您希望某个特定的网站或列表对应用程序页面拥有不同的匿名访问权限,则可以使用上述解决方案来更改它。