【问题标题】:Cookies dont work when page gets reloaded asp.net当页面重新加载 asp.net 时 Cookie 不起作用
【发布时间】:2014-04-22 04:56:32
【问题描述】:

当我的登录按钮被点击时,它应该创建这个 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)
        {

        }
    }
}
}

此代码用于切换到第二个母版页,但是当页面被重定向时,即使返回到自身,它也会切换回第一个母版页。如何更改此设置,以便在您登录时始终显示第二个母版页。

【问题讨论】:

  • 当你说回到自己或切换回第一个母版页时,你的意思是说使用浏览器的后退按钮?你想处理这种情况还是其他任何事情。您的问题和问题内容不一致,请具体说明。

标签: c# asp.net cookies response.redirect


【解决方案1】:

您需要添加 Cookie 的天数或过期时间

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

试一试,看看它是否适合你。

供您参考的网址 http://msdn.microsoft.com/en-us/library/ms178194.aspx

【讨论】:

    猜你喜欢
    • 2017-11-11
    • 2010-09-15
    • 1970-01-01
    • 2017-11-03
    • 1970-01-01
    • 2011-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多