2010-10-19 54 views
1

我正在嘗試從將添加到SharePoint頁面的Silverlight應用程序遍歷SharePoint 2010中的所有用戶配置文件。根據我所瞭解的情況,用戶配置文件服務不同於SharePoint網站存儲的網站「成員」或曾經訪問過的用戶列表。要獲取該用戶列表,請參閱this question訪問所有Sharepoint 2010用戶配置文件

我知道SharePoint 2010在mysite.com/_vti_bin/UserProfileService.asmx提供的asmx Web服務,但似乎沒有任何類似於GetAllUserProfiles方法的東西。我看到的最接近的形式是通過連續調用GetUserProfileByIndex方法遍歷所有用戶,但這遠非最佳。

有沒有辦法通過內置Sharepoint 2010 REST-ful服務訪問用戶配置文件,例如爲網站鏈接提供的內容mysite.com/_vti_bin/listdata.svc/Links?如果不是,您建議如何獲取SharePoint 2010中的所有現有用戶配置文件?

編輯:

這樣做的目的是提供在Silverlight的控制摘要簡檔信息。例如,顯示其個人資料中設置的「興趣」最多的用戶個人資料。此任務只能遍歷所有用戶配置文件。

回答

3

您確定要通過網絡服務完成此操作嗎?獲取用戶的所有鏈接意味着20個簡單的網址。獲取所有用戶配置文件意味着20,000個大型複雜對象

遍歷所有配置文件是我在導入代碼中完成的工作,但除此之外,我無法想象使用搜索更加合理的場景 - 特別是在涉及用戶交互時。

+0

請參閱我的編輯問題 - 我只想通過一個URL和一個請求獲取所有用戶配置文件數據。那可能嗎?一旦檢索,數據可以被緩存,所以我不認爲這些對象的複雜性和大小將是一個主要問題。 – ChessWhiz 2010-10-20 16:53:22

+1

我不認爲有一個內置的服務,因爲一般來說這是一個非常糟糕的主意。您描述的任務的最佳選擇是在服務器上運行的一些自定義代碼,在將它們發送到客戶端之前查找相應的記錄。即使對配置文件記錄進行直接迭代對用戶交互來說也不夠高效 - 您可能需要執行一些操作,例如將計算的interestcount字段添加到配置文件中,然後可以搜索該配置文件。服務器端緩存可能會有幫助,但將整個用戶配置文件存儲下載到客戶端肯定不是正確的方法。 – 2010-10-20 23:12:19

+0

太好了,謝謝你的洞察力。 – ChessWhiz 2010-10-20 23:46:56

相關問題