如何检查SharePoint文档权限?

时间:2010-01-13 05:47:28

标签: moss sharepoint-2007

我在SharePoint中部署了自定义Web服务,此Web服务的Web方法需要将SharePoint docuentUri作为参数。由于它部署在SharePoint环境中,我完成了SharePoint身份验证,但问题是如何检查用户是否需要验证特定文档?换句话说,如果用户没有查看文档的权限,Web服务方法应该返回一些未经授权的异常?我所拥有的只是作为inpurt参数传递的SharePoint documentUri。

感谢。

1 个答案:

答案 0 :(得分:1)

假设您的Web服务部署在SharePoint网站的/ _vti_bin虚拟目录中的SharePoint上下文中,您可以使用如下所示的SharePoint对象模型来检查调用用户是否具有文档的特定权限。不幸的是,如果检查失败,CheckPermissions调用将抛出UnauthorizedException,因此必须将其捕获。

string uri = "http://localhost/Shared%20Documents/Document1.doc";  //full path to doc
using (Microsoft.SharePoint.SPSite site = new Microsoft.SharePoint.SPSite(uri))
using (Microsoft.SharePoint.SPWeb web = site.OpenWeb())
{
 Microsoft.SharePoint.SPListItem item = web.GetListItem(uri); 
 item.CheckPermissions(Microsoft.SharePoint.SPBasePermissions.OpenItems);
} 

希望这有帮助,

史蒂夫