我编写了一个简单的代码,以便在会话的帮助下保留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.
}
答案 0 :(得分:1)
设置会话变量时可能很好:
Session["regCode"] = loginBase.getRegCodePerUser(txtLogin.Text);
用户名尚未提供,这就是为什么它返回一个空字符串,我会假设您正在执行此代码:lblStatus.Text =loginBase.getRegCodePerUser(txtLogin.Text);
在另一个页面/用户登录后,这是为什么在直接分配标签时获得标签中的值。
在设置Session变量的位置放置一个断点,并查看是否正在设置该值。
否则您的会话设置可能在您的web.config中不正确,导致在您访问第二页之前清除会话值。