我需要確定指定用戶可以通過SharePoint API在SharePoint Web應用程序中訪問的網站和網站。請注意,指定的用戶與調用代碼的當前用戶不同。我最初想使用PortalSiteMapProvider,但它沒有提供一個選項來改變它所建立的用戶上下文。任何人都可以提供任何替代方案嗎?確定指定用戶可以以編程方式訪問的SharePoint站點和站點?
感謝,MagicAndi
我需要確定指定用戶可以通過SharePoint API在SharePoint Web應用程序中訪問的網站和網站。請注意,指定的用戶與調用代碼的當前用戶不同。我最初想使用PortalSiteMapProvider,但它沒有提供一個選項來改變它所建立的用戶上下文。任何人都可以提供任何替代方案嗎?確定指定用戶可以以編程方式訪問的SharePoint站點和站點?
感謝,MagicAndi
不是最有效的解決了這個問題,但你可以通過所有的網站集迭代/ Web應用程序中,然後網呼叫:
web.DoesUserHavePermissions(userID, SPBasePermissions.Open)
其中「web」是SPWeb對象,userID是您正在檢查訪問權限的用戶的「DOMAIN \ user.name」。在RWEP中執行此操作,並確保正確處理SPSite/SPWeb對象。
謝謝愛爾蘭廚師,它看起來像我們使用的一種可能的方法。 +1 – MagicAndi 2009-10-09 15:12:53
一種可能的方法是利用模擬來確定網站和網特定用戶(比其他當前用戶)可以通過PortalSiteMapProvider訪問。這裏描述了一種在SharePoint背景假冒其他用戶的方法:
http://blackninjasoftware.com/2009/04/09/how-to-programmatically-impersonate-users-in-sharepoint/
意識到您需要使用API,但您也可能希望看到SP Administration Toolkit中的權限工具:http://blog.beckybertram.com/Lists/Posts/Post.aspx?ID=56 – 2009-10-09 10:44:21
還有SharePoint壽司可能很有用(開源):http://www.codeplex.com/sushi – 2009-10-09 10:45:23