2013-02-28 73 views
1

我有一個項目,其中有一個用戶名(但不是密碼),需要檢查用戶是否可以訪問項目。這必須在項目級別上,而不是在網絡級別上,因爲權限可能不會被繼承。測試用戶是否有權訪問SharePoint中的項目

我知道SPWeb.CheckPermissions,但認爲它只會測試用戶是否可以訪問實際的spweb。

感謝

== ==編輯

我能夠這樣做

var item = properties.ListItem; 
SPUser user = SPContext.Current.Web.EnsureUser(@"domain\logonname"); 
item.DoesUserHavePermissions(user, SPBasePermissions.OpenItems); 

我的問題,以實現這一目標仍有點然而。這可能通過web服務api來完成嗎?

+0

您使用的是哪個版本的SharePoint? – 2013-03-01 14:31:24

+0

2007,2010,2013 :) – 2013-03-01 15:45:05

+0

這沒有幫助,因爲這三者具有完全不同的Web服務方法。你的目標是哪個系統? :) – 2013-03-01 15:54:30

回答

0

在SharePoint 2013中,您可以使用REST API來查詢靜態方法。一個有趣的方法是SPUtility.GetPrincipalsInGroup。當然,你不能要求「有公開許可」,但你可以要求一個特定的組。要查詢靜態方法,請參閱:Programming using the SharePoint 2013 REST service,查找部分將靜態方法和屬性指定爲REST服務URI。當然,您必須使用經過身份驗證的用戶調用Web Service,並且需要啓用該組以供所有用戶枚舉。

相關問題