如何跨SharePoint网站集同步时区信息?

时间:2009-08-24 21:17:51

标签: sharepoint sharepoint-2007 synchronization timezone

我们正在通过四个区域托管的Web应用程序构建一个包含数百个网站集的大型SharePoint 2007安装。我们有大约12,000名用户,在全球范围内或多或少均匀分布,每个用户可以访问许多网站集 - 包括他们的“家庭”区域服务器和其他区域服务器。

我的问题是:我们如何允许每个用户设置一次他/她的时区,但允许时区与每个网站集同步?此外,如果用户从一个时区移动到另一个时区,我们如何允许他/她更改时区并在所有网站集中应用更改?

我们考虑过以下事项:

  1. 使用计划的进程通过SharePoint API更新时区记录。笨拙和缓慢 - 我们希望更改能够更快地生效,我们的维护窗口已经非常小了。

  2. 在包含时区信息的表上放置一个触发器,并使用.NET存储过程通过SharePoint API进行更新。绝对违背SP最佳实践。

  3. 创建一个工作流程,允许用户设置他/她的居住地时区,然后遍历网站集以设置适当的时区信息。这似乎适用于现有网站集,但新网站集无法获取设置。

  4. 将用户的时区存储在Cookie中;让主页获取cookie并更新当前网站集的时区设置。可以工作,但是我们的用户可能会使用多台机器,而且,我们宁愿不会在每次加载页面时都有这样做的开销。

  5. 所以底线是我们不确定最适合我们的选择。任何想法都将不胜感激。

1 个答案:

答案 0 :(得分:1)

我建议建立你的cookie理念:

  1. 将用户的时区存储在其个人资料中,并提供更改界面。
  2. 在页面加载时,如果时区cookie不存在,请根据用户配置文件值创建一个。
  3. 将Cookie值与SPContext.Current.Web.CurrentUser中设置的时区进行比较,并相应更新。
  4. 由于SPUser对象已经存在,并且您可以使用cookie来避免不断查找配置文件值,因此性能影响应该可以忽略不计。您可以将此逻辑添加到母版页或使用委托控件插入轻量级控件(我的偏好)。