gpt4 book ai didi

sharepoint - 在 SharePoint 网站中存储网站级全局变量的正确方法是什么?

转载 作者:行者123 更新时间:2023-12-04 14:52:27 27 4
gpt4 key购买 nike

让我对 SharePoint2007 发疯的一件事是显然无法拥有专门应用于网站或网站集本身而非内容的可定义设置。我的意思是,您有一些预定义的设置,例如站点 Logo 、站点名称和其他各种内容,但似乎没有任何地方可以添加新的设置。

我正在处理的应用程序需要能够创建多种“项目网站集”,这些“项目网站集”都遵循基本模板,但具有特定于该网站集且仅适用于该网站集的某些附加设置。除了标准站点名称之外,我们还需要定义项目编号、项目名称和客户名称。鉴于我们的一些客户的要求,我们还必须进行可配置的设置,以改变某些工作流程的工作方式,例如文件是用字母还是数字标记。

我们目前犹豫不决的解决方案是在 SharePoint 服务器上存储一个 XML 文件。此文件包含每个网站集的一个节点,由根网站的 URL 标识。节点内部是需要为该网站集定义的所有元素。当我们需要它们时,我们每次都必须访问 XML 文件(这将始终需要 SPSecurity.RunWithElevatedPrivileges 才能访问服务器上的文件)以加载它并检索数据。有很多自动化流程必须这样做,当我们到达数百个站点时,我对这种方法的稳定性犹豫不决,其中有数千个文件运行着数万个工作流,都想访问这个文件。也许他们是毫无根据的担心,但我宁愿担心也不愿冒险在几年内让一切都崩溃。

我正在查看 SPWeb 对象并找到了 AllProperties哈希表。它看起来只是一种可能有效的东西,但我不知道修改它有多安全。我通读了 MSDN 和 WSS SDK,但没有发现任何关于将全新属性添加到 AllProperties 中的说明。 .使用安全吗AllProperties对于这种事情?或者我还缺少另一个功能,它可以在网站集或网站范围内处理全局变量的概念?

最佳答案

推荐的方法是通过 SPFarm、SPWeb.RootWeb(用于网站集)、SPWeb、SPList 等(取决于您需要的范围)的 .Properties 使用 PropertyBag(键/值对)。

MSDN - Managing Custom Configuration Options for a SharePoint Application

有一个可用于生产的代码作为

MSDN - The SharePoint Guidance Library

Hierarchical configuration manager

这使您能够以编程方式读取/写入这些值。如果您想在不使用指导库的情况下执行此操作,那么您将使用类似于以下代码的内容。

SPWeb web = SPContext.Current.Web;
if (web.Properties.ContainsKey("MyProperty"))
string myProperty = web.Properties["MyProperty"];

如果您希望用户界面允许管理员轻松设置值,请使用 SharePoint Designer (呃!)或类似 SharePoint Property Bag Settings

关于sharepoint - 在 SharePoint 网站中存储网站级全局变量的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3008473/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com