我想从编程中获取所有用户(用户列表),这些用户(用户列表)都标记为SharePoint 2010自定义列表项目“我喜欢”。

此线程显示了如何获得用“我喜欢”标记列表项目的用户计数

但是我希望用户列表// SharePoint在中央管理员中提供此功能 为此遵循此链接

有什么方法可以从编程中获取此信息?

提前致谢!!

有帮助吗?

解决方案

虽然我确定人们会断言不允许以任何形式查询数据库(即影响您的Microsoft支持性),但我会提前向他们挑战,以通过此类陈述从Microsoft正式生产任何东西。在表中插入/修改/删除行并更改方案时,所有类型的内容都没有执行选择语句或执行不会以任何方式更新表内容的存储过程。

我要说的是,直接查询数据库是人们应该做的事情,a)了解SQL及其如何优化查询,b)了解SharePoint DM。您不希望人们写疑问,这些查询会对农场的表现产生可衡量的负面影响。

凭借该免责声明,没有我知道通过已发布和支持的API获取此数据的手段。您可以通过将一些Social DB的存储程序串在一起来解决,但这很麻烦。以下是一个选择,可以使您大部分时间。您仍然需要将其链接到您的配置文件db,以将GUID解析为配置文件名称...您可以交替使用GUID并致电userProfileManager.getUserProfile返回对配置文件的引用并以此方式获取名称。

SELECT UserId
FROM [Social DB].[dbo].[SocialTags] st 
  Inner Join [Social DB].[dbo].[Urls] u 
    On u.UrlId = st.UrlId 
    and u.Url = 'http://sharepointdev:9000/Shared%20Documents/Content_viewing_2011-07-26T131806.xlsx' -- the encoded URL of the file you want to retrieve Like It info on
  Inner Join [Social DB].[dbo].[UserProfile_Validation] uv 
    On uv.User_RecordID = st.User_RecordID
Where
  InputTermLabel = 'I like it' -- or you can get the TermID for the "I Like It" tag and query against TermID

没有任何想象力的理想解决方案,如果安装了任何hotfix,CU或SP,则显然需要重新认证。

其他提示

在第一篇文章中,您是否尝试过列举 List<SocialTermDetail> 列表以查看列表中每个对象中的内容?

在本杂志中: http://www.diwug.nl/e-magazines/pages/default.aspx Emagazine#4我写了一篇有关SocialDataService,用户和组以及搜索Web服务的文章。我想这会帮助您。

许可以下: CC-BY-SA归因
scroll top