2009-08-24 54 views
2

我們正在通過四個區域託管的Web應用程序構建包含數百個網站集的大型SharePoint 2007安裝。我們有大約12,000個用戶,分佈在全球各地,每個用戶都可以訪問很多網站集 - 無論是在他們的「家庭」區域服務器還是其他區域服務器上。如何跨SharePoint網站集同步時區信息?

我的問題是:我們如何允許每個用戶設置他/她的時區一次,但允許時區同步到每個網站集?另外,如果用戶從一個時區移到另一個時區,我們如何允許他/她更改時區並在所有網站集中應用更改?

我們考慮了以下幾點:使用計劃的過程通過SharePoint API

  1. 更新時區的記錄。笨拙而緩慢 - 我們希望更改能夠更快地生效,而且我們的維護窗口已經非常小。

  2. 在包含時區信息的表上放置一個觸發器,並使用.NET存儲過程通過SharePoint API進行更新。肯定會違背SP最佳實踐。

  3. 創建一個工作流,允許用戶設置他/她的家鄉時區,然後遍歷網站集以設置適當的時區信息。這似乎適用於現有的網站集,但新的網站集不會獲得設置。

  4. 將用戶的時區存儲在cookie中;讓母版頁獲取Cookie並更新當前網站集的時區設置。可以工作,但我們的用戶可能會使用多臺機器,而且,我們寧可不用在每次頁面加載時都做這項工作。

所以底線是,我們不知道什麼是最好的選擇是我們。任何想法將不勝感激。

回答

1

我建議建設Cookie的想法:

  1. 存儲用戶的時區,在他們的個人資料,並提供更改它的接口。
  2. 在頁面加載時,如果時區cookie不存在,請根據用戶配置文件值創建一個。
  3. 將cookie值與SPContext.Current.Web.CurrentUser中設置的時區進行比較並進行相應更新。

由於SPUser對象已經存在,並且您可以使用cookie來避免不斷查找配置文件值,所以性能影響應該可以忽略不計。您可以將此邏輯添加到母版頁,也可以使用代理控制插入輕量級控件(我的偏好)。

+0

謝謝 - 我們會試試看。 – Roger 2009-08-25 15:27:48