Sharepoint:阻止在文档库中访问文档

时间:2010-10-20 18:03:19

标签: sharepoint

如果用户没有查看相应文档的权限,目前整个ListItem将从Doc库中删除,但如果用户至少可以看到包含列表项的元数据,我真的很喜欢它,并阻止它们从访问相应的文档(即他们点击文档链接并被拒绝,或他们手动输入网址并被拒绝等)。

是否有一些文档库事件处理程序处理“访问”我可以实现的文档并在将文档传递给它们之前检查用户的权限?或者沿着这些方向的东西..

3 个答案:

答案 0 :(得分:0)

列表/库具有以下项目级事件处理程序:

  • ItemAdded
  • ItemAdding
  • ItemAttachmentAdded
  • ItemAttachmentAdding
  • ItemAttachmentDeleted
  • ItemAttachmentDeleting
  • ItemCheckedIn
  • ItemCheckedOut
  • ItemCheckingIn
  • ItemCheckingOut
  • ItemDeleted
  • ItemDeleting
  • ItemFileConverted
  • ItemFileMoved
  • ItemFileMoving
  • ItemUncheckedOut
  • ItemUncheckingOut
  • ItemUpdated
  • ItemUpdating

如您所见,没有事件可以处理打开项目。

为了防止用户从库listview webpart访问文档,您可以扩展OOTB listview webpart以合并您所需的功能,或者使用辅助Webpart通过SharePoint API或javascript操作OOTB listview webpart。

答案 1 :(得分:0)

这是一个完全实验性的东西,我没有尝试过,也没有听说过有人,但是这里有: 在Template \ Xml文件夹下有一个名为serverfiles.xml的文件。您也可以创建一个,只需确保如下构建名称:serverfiles [yourname] .xml。 此文件根据文件类型控制重定向,这种方式将InfoPath XML文件重定向到Forms Server。 你可以:

  1. 将所有Office文件重定向到自定义ASPX页面
  2. 在该页面的代码后面应用某种自定义权限检查(比如创建一组读者,如果用户只在该组中,则意味着他只能看到元数据)。
  3. 将受限用户重定向到自定义错误页面。
  4. 通过这种方式,用户可以看到元数据(因为从SharePoint的角度来看,他们是读者),但无法看到文档(因为您正在阻止它)。我再次尝试过,但它可能会起作用。

    如果你决定去做,我很想知道它是怎么回事:)

答案 2 :(得分:0)

我的问题的答案:创建一个自定义的httpHandler来处理必须截取的文档类型。

好文章: http://dotnetslackers.com/articles/aspnet/WatermarkingPDFDocumentsUsingHttpHandlers.aspx http://blogs.msdn.com/b/kaevans/archive/2010/08/04/deploying-an-asp-net-httphandler-to-sharepoint-2010.aspx

此外,Visual Studio创建的通用处理程序代码可能存在错误,请阅读本文以创建带有代码的httpHandler, http://aspnetresources.com/blog/httphandler_code_behind