2011-07-29 53 views
3

我在同一個Web應用程序中有幾個網站集,我需要處理用戶從一個網站集到另一個網站集時的事件。我需要它來執行特定的操作,例如設置「lcid」cookie來更改站點的默認語言,並將值聲明爲用戶屬性映射。如何在用戶從同一個Web應用程序中的一個網站集合轉到另一個網站集合時檢測事件?

當前我正在使用自定義HTTP模塊,它處理所有PostAuthorize Web應用程序請求並檢查當前用戶和網站集,爲集合中的每個用戶保存最後訪問的網站,並在檢測到網站之間的轉換時觸發用戶的自定義事件集合。

但我認爲這種方法會降低Web應用程序的性能。從日誌中我發現,即使用戶只需單擊其他網站集中的頁面鏈接,也可以獲得許多PostAuthorize請求。此外,在類似的情況下,有時會有一系列請求「下一個」網站集,然後是「上一個」,然後再到「下一個」。此外,當此模塊處於活動狀態時,SharePoint Designer也會出現一些問題(無法編輯頁面)。

你能否給我一個更好的方法來完成這個任務的建議?提前致謝。

回答

1

1種方法是使用隱藏的控件和cookie。
在所有目標站點集合的所有主頁中保留一個隱藏控件。 此控件將檢查當前網站集URL並將其保存在cookie中。可能在您存儲lcid的同一個cookie中。
從下一次加載開始,它會嘗試匹配Cookie中的網址和當前的網站集URL。如果不同,請調用您要執行的代碼並更新Cookie中的網址。
這比httpmodule的性能要輕得多。

相關問題