我在page_load
中使用session
變量時遇到問題。我有一個頁面(members.aspx
),它是一個會員區域。ASP.net page_load未檢測到會話
如果用戶不是logged
,它會顯示一個表單,要求他們登錄。表格提交他們的詳細信息,檢查是否可以設置session
變量,如果OK
。然後它重新加載頁面。
所以,如果用戶已經正確認證,它會設置Session["memberLoggedIn"] = true
。 然後我page_load
功能看起來像這樣
protected void Page_Load(object sender, EventArgs e)
{
if (Convert.ToBoolean(Session["memberLoggedIn"]) == true) {
Response.Write("OK");
}
}
有更多的代碼,但本質上,「確定」應寫。但是,它沒有出現。儘管設置了session
。如果我直接進入頁面,它會顯示出來。這只是爲了從初始登錄中重新加載成員頁面而停止它。
有什麼想法?
====================== 代碼設置會話是
if (logindetails.Count > 0) {
System.Data.DataRow details = logindetails[0];
Session["memberLoggedIn"] = true;
}
我然後只檢查是否(Convert.ToBoolean(Session["memberLoggedIn"]) == true)
我所有的頁面。說實話,它似乎並不可靠,我認爲有時候我需要了解頁面加載的順序,因爲當我在註銷頁面上銷燬會話時,某些部分仍顯示已登錄的功能! (但這是另一個故事....)
你的意思是在實際的登錄過程後頁面刷新時,你沒有看到「OK」? – Timbo
是的,這是正確的。如果我要登錄,然後轉到另一頁,然後回到成員主頁,它會顯示。只是沒有重新加載。 –
我們來看看設置Session的代碼。 – James