我正在尝试从将添加到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的控制摘要简档信息。例如,显示其个人资料中设置的“兴趣”最多的用户个人资料。此任务只能遍历所有用户配置文件。
请参阅我的编辑问题 - 我只想通过一个URL和一个请求获取所有用户配置文件数据。那可能吗?一旦检索,数据可以被缓存,所以我不认为这些对象的复杂性和大小将是一个主要问题。 – ChessWhiz 2010-10-20 16:53:22
我不认为有一个内置的服务,因为一般来说这是一个非常糟糕的主意。您描述的任务的最佳选择是在服务器上运行的一些自定义代码,在将它们发送到客户端之前查找相应的记录。即使对配置文件记录进行直接迭代对用户交互来说也不够高效 - 您可能需要执行一些操作,例如将计算的interestcount字段添加到配置文件中,然后可以搜索该配置文件。服务器端缓存可能会有帮助,但将整个用户配置文件存储下载到客户端肯定不是正确的方法。 – 2010-10-20 23:12:19
太好了,谢谢你的洞察力。 – ChessWhiz 2010-10-20 23:46:56