2010-01-13 140 views
0

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

谢谢。

回答

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); 
} 

希望这有助于

史蒂夫