2009-04-20 85 views
0

會話變量更改時,是否可以在代碼中通知?將舉一個例子,使其更清晰。會話變量更改時是否有通知?

它是一個普通的ASP.NET站點,帶有主頁面和內容頁面。我想顯示一個用戶狀態的圖像,即登錄或不登錄(2個不同的圖像)。而不是在母版頁的每個page_load上檢查會話變量,是否可以設置圖像並只在會話變量更改時才更改它?幾乎就像發生更改時觸發觸發器一樣。

+0

由Eoin寫的 - 不要擔心檢查會話變量的性能,除非你真的有_measured_性能問題。即使在這種情況下,我認爲會話訪問不是您的瓶頸。如果是這樣的話,你總是可以使用帶有後臺字段的包裝屬性,該字段只會評估一次。 – Rashack 2009-04-20 10:53:32

回答

1

就我所知,會話對象(HTTPSessionState)沒有任何OnChanged事件,因此您必須檢查每次,但是在MasterPage Page_Load事件中執行檢查的開銷很小。

你應該看看使用內置的成員提供程序來做到這一點,因爲它具有特殊的Login/LoginStatus控件,當用戶登錄時它將改變狀態(你提供模板和你自己的圖像/樣式等等)在/註銷/是匿名的