代码之家  ›  专栏  ›  技术社区  ›  Paul-Jan

如何在sharepoint中存储用户特定数据

  •  10
  • Paul-Jan  · 技术社区  · 16 年前

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

    • 一些我不知道的Spuser或类似的内置属性包。
    • splist,通过用户列关联。
    • 自定义数据库表,通过spuser id关联。
    • 否则?

    听起来像是一个rtfm,但我可能问错了谷歌的问题。

    [更新]

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

    4 回复  |  直到 16 年前
        1
  •  5
  •   JC Vivian    16 年前

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

    用户信息列表是sharepoint用来存储用户信息的标准sharepoint列表。 要访问用户信息列表,可以转到网站集的根网站并使用siteUserInfoList属性

    例如。

    SPList userInformationlist = SPContext.Current.Site.RootWeb.SiteUserInfoList;
    //Or 
    SPWeb web = SPContext.Current.Site.RootWeb;
    SPList userInformationlist = web.SiteUserInfoList;
    

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

    例如.

    SPListItem currentUserItem = userInformationlist.GetItemById(web.CurrentUser.ID);
    

    如果您使用的是moss,则可以将此信息存储在用户配置文件中,并使其在网站集之间可用,这不需要启用“我的网站”。您需要使用用户配置文件类来访问它。

        2
  •  2
  •   JWL_    16 年前

    我会去找用户配置文件上的属性。您不希望将信息存储在根站点上,因为它不是有关根站点的信息。 在您的示例中,每个用户的个人资料上都有一个“快速链接”集合。为每个用户存储url的理想场所。:)

        3
  •  2
  •   Robert Williams    16 年前

    构建一个可以读取/写入自定义数据库的Web部件,您就可以灵活地跨网站集、Web应用程序甚至独立的服务器场使用该Web部件。

    这是在我工作的地方实施的,并且取得了巨大的成功。我们需要一种方法来为我们的最终用户提供大量重要的、常用的链接。最终用户能够显示对其特定工作功能有用的链接,并且有一个可以放在任何地方引用对其重要的链接的web部件。您还可以让管理员转到自定义数据库并更新任何可能更改的url,而不会影响最终用户或导致链接断开。

        4
  •  1
  •   Jeroen Ritmeijer    16 年前

    这是一个很好的问题。

    虽然我没有完美的答案,但你可以考虑以下几点:

    • 如果可行,请将数据存储在浏览器cookie中。

    • 在属性中存储在网站集的rootweb中,由用户的登录ID键入。您可能希望在读/写属性时提升,以防用户可以访问子网站而不是rootweb。