我的項目中有很多頁面。在所有的網頁我寫的:從視圖狀態獲取值,以防會話過期
if (!IsPostBack)
{
if (HttpContext.Current.Session["curUserRole"] == null)
{
DBUsers.SetUserStatusOnline("0", ViewState["curUserLogin"].ToString());
ViewState["curUserLogin"] = "";
Response.Redirect("~/Login.aspx");
}
else
{
ViewState["curUserLogin"] = HttpContext.Current.Session["curUserLogin"].ToString();
DBUsers.SetUserStatusOnline("1", ViewState["curUserLogin"].ToString());
}
}
當用戶登錄在網站上,目前的用戶角色被寫入的會話和當前用戶登錄是寫在視圖狀態。當會話結束時,我認爲我可以在視圖狀態中查看當前用戶登錄並在數據庫中設置脫機狀態。但是當session
爲空時,viewstate也爲空。我能做什麼?
好的。如何保存用戶登錄並在任何頁面重新加載和會話爲空時調用此方法? –
我的回答是關於如何集中您的邏輯,而不是將它剪切粘貼到每個頁面的建議。您需要查看'UnhandledException'的答案,以解決從另一個頁面重定向時出現null'ViewState'的問題。 – CAbbott
@DarienFawkes - 雖然我很欣賞代表,但我不認爲我的答案能解決您的問題。沒有'UnhandledException'的答案解決了你的問題?如果是這樣,你應該真的接受他的答案。 – CAbbott