[英]Session variable gets lost after publishing (works on dev machine)
我被要求快速完成一個項目,不需要瘋狂的安全性,因此,我實現了一個簡單的登錄屏幕,該屏幕針對數據庫檢查用戶名和密碼。
User u = new User();
if (u.AuthenticateUser(txtUsername.Text, txtPassword.Text))
Session.Add("UserSeshAuthenticated", true);
Response.Redirect("Dashboard.aspx");
所有其他頁面共享一個母版頁,並在Page_Load
事件中:
if ((Session["UserSeshAuthenticated"] == null) || ((bool)Session["UserSeshAuthenticated"] == false))
{
fw.Write("UserSeshAuthenticated has been lost or something");
string path = HttpContext.Current.Request.Url.AbsolutePath;
Response.Redirect("Login.aspx?retpath=" + path);
}
else
{
lblLoggedInUsername.Text = Session["UserSeshAuthenticated"].ToString();
}
所有這些在我的開發機器上都能很好地工作,但是當我將其發布到服務器上時,當我的MasterPage加載時,它已經丟失了會話變量。
有人可以幫忙嗎?...我應該在今天下午直播它,我不認為自己會遇到這個問題!!!
任何幫助表示贊賞。 非常感謝。
在您的登錄代碼中,將“ UserSeshAuthenticated”添加到會話中,但不添加User對象。 如果函數u.AuthenticateUser()將自己的副本添加到會話中,則可能是您的問題。 嘗試將其添加到結果塊中。 像這樣:
User u = new User();
if (u.AuthenticateUser(txtUsername.Text, txtPassword.Text))
{
Session.Add("UserSeshAuthenticated", true);
Session.Add("oUser", u);
Response.Redirect("Dashboard.aspx");
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.