无法检索会话值

时间:2011-06-08 11:19:01

标签: asp.net session

我编写了一个简单的代码,以便在会话的帮助下保留USerID。但是我不能获得Session值,尽管它不是null。我完全按照微软官方教程的说法完成了。这是代码:

Default.aspx上的代码

string regCode = loginBase.getRegCodePerUser(txtLogin.Text);
Session["regCode"] = regCode;
//lblInfo.text=(string)Session["regCode"];When I check it shows the right string.It's OK
Response.Redirect("Selection.aspx");

我没有直接去那个页面。我先去Selection.aspx,然后去UpdateStages。

这是另一页上的代码(UpdateStages.apsx):

       if ((string)Session["connSTR"] == null && (string)Session["user"] == null)
    {
        Response.Redirect("Default.aspx");
    }
    else if ((string)Session["regCode"]!=null)
    {
        regCode=(string)Session["regCode"];
        lblInfo.Text = regCode;//Show nothing. Empty.           
    }

1 个答案:

答案 0 :(得分:1)

设置会话变量时可能很好:

Session["regCode"] = loginBase.getRegCodePerUser(txtLogin.Text);

用户名尚未提供,这就是为什么它返回一个空字符串,我会假设您正在执行此代码:lblStatus.Text =loginBase.getRegCodePerUser(txtLogin.Text);在另一个页面/用户登录后,这是为什么在直接分配标签时获得标签中的值。

在设置Session变量的位置放置一个断点,并查看是否正在设置该值。

否则您的会话设置可能在您的web.config中不正确,导致在您访问第二页之前清除会话值。