2010-10-19 68 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

相关问题