簡體   English   中英

會話變量在發布后丟失(在開發機器上工作)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM