如何在SharePoint中存储特定于用户的数据

Pau*_*Jan 10 sharepoint wss sharepoint-2010

我有一些用户特定的数据,我需要存储在SharePoint中,并通过自定义webparts使用户可以访问.让我们说一个喜欢的网址列表.存储此信息最直接的方法是什么?

  • SPUser或类似的一些内置属性包,我不知道.
  • SPList,通过用户列关联.
  • 自定义数据库表,通过SPUser ID关联.
  • 除此以外?

对我来说听起来像RTFM,但我可能会问谷歌错误的问题.

[更新]

我们最终将这些信息存储在一个固定位置的简单列表中,并使用Person字段进行过滤.也许确实是最简单的解决方案,但从技术上讲,我认为下面的明确答案更好.

JC *_*ian 5

如果要在每个用户的网站集中重复使用它们,可以将"字段"添加到"用户信息列表".您可以向可以创建此列的Web部件解决方案添加功能接收器,或者检查用户信息列表中是否存在此列以确保列存在.

"用户信息"列表是SharePoint用于存储用户信息的标准SharePoint列表.要访问用户信息列表,您可以转到网站集的根网站并使用SiteUserInfoList属性

例如

SPList userInformationlist = SPContext.Current.Site.RootWeb.SiteUserInfoList;
//Or 
SPWeb web = SPContext.Current.Site.RootWeb;
SPList userInformationlist = web.SiteUserInfoList;
Run Code Online (Sandbox Code Playgroud)

要访问用户列表项,您可以使用用户ID从用户信息列表中获取ListItem

例如

SPListItem currentUserItem = userInformationlist.GetItemById(web.CurrentUser.ID);
Run Code Online (Sandbox Code Playgroud)

如果您使用的是MOSS,则可以将此信息存储在"用户配置文件"中,并使其可以跨站点集合使用,这不需要启用"我的网站".您需要使用用户配置文件类来访问它.