2010-11-01 107 views
0

我需要根据用户所属的组在SharePoint文档库中设置IP筛选。更具体地说,我们为每个客户建立了团队。每个组都应该有一个允许的IP地址附加到它。当用户访问此文档库时,我们需要确保用户来自附加到其客户组的IP地址。 IP过滤只适用于单个文档库,而不适用于整个网站。sharepoint 2010文档库ip filtering

到目前为止,我唯一的想法是创建一个web部件,检查用户的IP地址并在不正确的情况下重定向。然后,我可以将该Web部件放在Web部件页面的顶部,并在其下显示文档库Web部件。这有点狡猾,所以我希望有人有更好的主意。

回答

0

您在AllItems.aspx页面上提出的webpart解决方案的问题在于,有多种方式可以访问文档,并且这不会阻止具有直接URL的人访问文档。

您想利用SharePoint的权限结构。如果可以按安全性对文档进行分组,则可以为每个客户(或单个库中的一个文件夹)创建一个库,并根据您的SharePoint组设置库/文件夹的权限。如果您需要拥有一个可用于多个组的文档,则这可能对您无效。

另一种方法是将库安全设置为仅限于一个系统帐户。然后,您可以编写检查用户IP地址的Web部件(或应用程序页面),并使用RunWithElevatedPermissions获取适用于该用户的库文件内容。这将解决直接链接的问题,因为它们必须通过您的页面才能访问文档。

+0

您如何看待使用HTTP模块检查IP地址?在模块内部,我只需简单地检查一下URL是否正在访问受限文档库中的某些内容,如果是,则查找用户的IP地址并与我的列表进行比较。思考? – 2010-11-02 14:38:27

+0

这当然可以工作。从您的问题来看,这些受限用户是否可以访问您网站的其他区域并不清楚。如果是这样,那么如果他们请求不同的区域并且只检查该库的IP地址,则只需要允许请求通过。但是,如果一切都基于IP地址访问,那么HTTP模块可以很好地工作。 – 2010-11-02 15:40:21

+0

我应该更清楚。 IP过滤只适用于单个超安全文档库。该网站的其余部分将像往常一样享有权限。 我写了一个http模块,它似乎工作。我知道整个网站的每个页面都有开销,因为它。处理程序中的第一行是检查路径,如果它以/ Downloads(超级安全的站点)开头,那么我继续进行IP检查。它似乎工作得很好。你有什么其他的建议? – 2010-11-03 18:44:48