【问题标题】:Accessing All Sharepoint 2010 User Profiles访问所有 Sharepoint 2010 用户配置文件
【发布时间】:2010-10-19 23:15:08
【问题描述】:

我正在尝试从将添加到 SharePoint 页面的 Silverlight 应用程序遍历 SharePoint 2010 中的所有用户配置文件。根据我了解到的情况,用户配置文件服务不同于 SharePoint 网站存储的用户列表,这些用户是该网站的“成员”或曾经访问过该网站。要获取该用户列表,请参阅this question。

我知道 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 控件中提供概要配置文件信息。例如,显示在其个人资料中设置了最多“兴趣”的用户个人资料。只有通过遍历所有用户配置文件才能完成此任务。

【问题讨论】:

    标签: silverlight web-services sharepoint rest sharepoint-2010


    【解决方案1】:

    您确定要通过网络服务执行此操作吗?获取用户的所有链接意味着 20 个简单的 url。获取所有用户配置文件意味着 20,000 个大型复杂对象。

    遍历所有配置文件是我在导入代码中所做的事情,但除此之外,我想不出使用搜索更有意义的场景 - 尤其是在涉及用户交互时。

    【讨论】:

    • 查看我对问题的编辑——我只想通过一个 URL 和一个请求获取所有用户配置文件数据。那可能吗?一旦检索到,数据可以被缓存,所以我认为对象的复杂性和大小不会成为主要问题。
    • 我认为没有内置的服务,因为总的来说这是一个非常糟糕的主意。您描述的任务的最佳选择是在服务器上运行的一些自定义代码,在将它们发送到客户端之前找到适当的记录。即使这样,对个人资料记录的直接迭代对于用户交互来说也不够高效 - 您可能需要执行一些操作,例如将计算出的 interestcount 字段添加到可以搜索的个人资料中。服务器端缓存可能会有所帮助,但将整个用户配置文件存储下载到客户端绝对不是正确的方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-25
    • 2014-02-28
    • 2012-08-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多