2
我將一個webapp從一個框架佈局轉換爲Masterpage佈局。框架集中的每個頁面都使用通用的自定義類來獲取登錄的用戶,該自定義類繼承自Page。ASP.Net MasterPage的全局變量
我認爲一個接口將是正確的方式來轉換,但我真的錯了。什麼是存儲全局變量或類的最好和最有效的方法,以便Masterpage的每個內容頁面都可以引用已登錄的用戶類?
我將一個webapp從一個框架佈局轉換爲Masterpage佈局。框架集中的每個頁面都使用通用的自定義類來獲取登錄的用戶,該自定義類繼承自Page。ASP.Net MasterPage的全局變量
我認爲一個接口將是正確的方式來轉換,但我真的錯了。什麼是存儲全局變量或類的最好和最有效的方法,以便Masterpage的每個內容頁面都可以引用已登錄的用戶類?
使其成爲一個靜態方法的簡單靜態類,它將返回記錄的用戶類,不需要將此代碼與ASP.NET頁面綁定。如果獲取登錄用戶需要一些時間昂貴的操作(例如數據庫查詢)將會話記錄的用戶類實例存儲在會話中。這樣的事情:
public static class Users
{
public static User GetLoggedUser()
{
if (HttpContext.Current.Session["LoggedUser"] != null)
{
return (User)HttpContext.Current.Session["LoggedUser"];
}
else
{
User usr = GetLoggedUserSomehow(); // here goes your current code to get user
HttpContext.Current.Session["LoggedUser"] = usr;
return usr;
}
}
}
這是爲asp.net? –
是的,對不起,我忘了把這些信息放在 – mattgcon
放到會話緩存中。會話緩存持續只要用戶登錄。 –