2010-01-13 106 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); 
} 

希望這有助於

史蒂夫