会话和Cookie检索名字和姓氏欢迎消息

本文关键字:消息 Cookie 检索 会话 | 更新日期: 2023-09-27 18:22:00

尝试处理这个程序,理论上它应该检索"Welcome"lblMessage的名字和姓氏。在ASP.NET.中使用Cookie

IS所做的只是检索["FirstName"]。我需要这两个

订单.aspx。cs

  protected void Page_Load(object sender, EventArgs e){
  string firstName = (string)Session["FirstName"];
    string lastName = (string)Session["LastName"];
    if ((firstName != null) && (lastName != null))
    {
        lblWelcome.Text = "Welcome back, " + (string)Session["FirstName"] + (string)Session[" LastName"] + "!";
    }

}

CheckOut.aspx。cs

protected void Page_Load(object sender, EventArgs e)
{
    // get entry data from cookies
    //if (Request.Cookies["FirstName"] != null)
    //    txtFirstName.Text = Request.Cookies["FirstName"].Value;
    //if (Request.Cookies["LastName"] != null)
    //    txtLastName.Text = Request.Cookies["LastName"].Value;
    //get entry data from session state
    if (!IsPostBack)
    {
        string firstName = (string)Session["FirstName"];
        if (firstName != null) txtFirstName.Text = (string)Session["FirstName"];
        string lastName = (string)Session["LastName"];
        if (lastName != null) txtLastName.Text = (string)Session["LastName"];
        txtFirstName.Focus();
    }
}
private void LoadCustomerData()
{
    Session["FirstName"] = txtFirstName.Text;
    Session["LastName"] = txtLastName.Text;  
}

在几个部分中[不显示整个代码],这就是我迄今为止所拥有的内容。

想知道是否有人能重新审视这件事,看看我做错了什么?

会话和Cookie检索名字和姓氏欢迎消息

最有可能的候选者是拼写错误,如果不查看所有代码,很难发现。我建议删除"魔术字符串"(即Session["FirstName"]),并为会话变量名声明一些常量:

[in some static class]
public const string FirstNameKey = "FirstName";
public const string LastNameKey = "LastName";

然后一致地引用这些密钥:

Session[FirstNameKey] = txtFirstName.Text;

实际上,我通常使用GUID作为名称(例如public const string FirstNameKey = "49b63214-1812-4ba3-9ace-ae423c682d7c";,这样就不会在应用程序中重复它们

问题是cookie名称中的一种类型:Session[" LastName"]

代替

string firstName = (string)Session["FirstName"]; ... = (string)Session["FirstName];

使用

string firstName = (string)Session["FirstName"]; ... = firstName;