簡體   English   中英

當頁面重新加載asp.net時,Cookie不起作用

[英]Cookies dont work when page gets reloaded asp.net

單擊我的登錄按鈕后,應創建此cookie

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            HttpCookie testCookie =  new HttpCookie("UserInfo");
            testCookie.Expires = DateTime.Now.AddDays(1);
            Response.Cookies.Add(testCookie);
        }
    }

    protected void NavigationMenu_MenuItemClick(object sender, MenuEventArgs e)
    {

    }

    protected void Login1_Authenticate(object sender, AuthenticateEventArgs e)
    {

    }

    protected void LoginView1_ViewChanged(object sender, EventArgs e)
    {

    }


    protected void btnLogIn_Click(object sender, EventArgs e)
    {
        if (UserEmail.Text == "example@hotmail.com" && TextBox1.Text == "qwerty1")
        {

            HttpCookie cookie = Request.Cookies["UserInfo"];
            cookie["userName"] = UserEmail.Text;
            cookie["booleanCheck"] = "true";
            Response.Cookies.Add(cookie);
            Response.Redirect(Request.RawUrl);
        }
        else
        {
            ErrorMessage.Visible = true;
            ErrorEmail.Visible = true;
            ErrorPassword.Visible = true;
        }
    }
}

}

然后,應使用上面保存的cookie來設置網站的母版頁。

public partial class _Default : System.Web.UI.Page
    {
    Boolean found = false;
    protected void Page_Load(object sender, EventArgs e)
    {

    }


    protected void Page_PreInit(object sender, EventArgs e)
    {
        String signedInCheck = "false";
        HttpCookie cookie = Request.Cookies["userInfo"];
        if (cookie != null)
        {
            signedInCheck = cookie["booleanCheck"];

        }
        try
        {
            if (signedInCheck != "true")
                this.Page.MasterPageFile = "~/Site.Master";
            else
                this.Page.MasterPageFile = "~/LoggedIn.Master";

        }
        catch (Exception ex)
        {

        }
    }
}
}

這段代碼可以切換到第二個母版頁,但是當頁面重新定向甚至回到自身時,它也切換回第一個母版頁。 如何更改此設置,以便在登錄時始終顯示第二個母版頁。

您需要添加Cookie的天數或有效期

HttpCookie myCookie = new HttpCookie("UserSettings");
myCookie["Font"] = "Arial";
myCookie["Color"] = "Blue";
myCookie.Expires = DateTime.Now.AddDays(1d);
Response.Cookies.Add(myCookie);

嘗試一下,看看它是否對您有用。

供您參考的URL http://msdn.microsoft.com/en-us/library/ms178194.aspx

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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