遇到一个关于SESSION的问题,忘各位赐教
这样的,我第一次提问,不知道该怎么问,也不知道该怎么写
我写了一个登陆,登陆框是在母版页文件里面
源代码大概是这样
protected void Page_Load(object sender, EventArgs e)
{
if (Session["user"] == null)
{
login2.Visible = false;
login1.Visible = true;
Label1.Text = " 游客 ";
}
else
{
login1.Visible = false;
login2.Visible = true;
Label1.Text = Session["user"].ToString();
}
}
protected void ImageButton3_Click(object sender, ImageClickEventArgs e) //退出按钮
{
login2.Visible = false;
login1.Visible = true;
Session.Remove("user");
}
protected void ImageButton1_Click1(object sender, ImageClickEventArgs e) //登陆按钮
{
string query = "SELECT pwd FROM users where md5name='" + security.psmd5(TextBox2.Text) + "'";
DataTable getdata = sqldbcon.out_table(query);
if (getdata.Rows.Count == 0)
TextBox2.Text = "没有此用户名";
else
{
if (security.psmd5(TextBox1.Text) == getdata.Rows[0][0].ToString())
{
Session.Add("user", TextBox2.Text);
}
}
}
protected void ImageButton2_Click(object sender, ImageClickEventArgs e) //注册
{
Response.Redirect("register.aspx");
}
}
比如说 我在主页(index.aspx)上面用账号密码登陆,然后去浏览另一个页面(比如说MESSAGE.ASPX),这时候 登陆框是正常显示登陆后的DIV。但是如果我在登陆之前访问了这个MESSAGE.ASPX,这时候本地上存了MESSAGE.ASPX的缓存。然后回到INDEX.ASPX,这时候再登陆,登陆完了再去message.aspx,好了,出事了。显示的是缓存了的MESSAGE.ASPX页面,登陆后的DIV不显示。
试了很多办法,比如说REDIRECT一下,REDIRECT的页面是好的。但是,如果我之前缓存了多个页面,还是会出问题。还有 禁止本地缓存的话,我的页面东西很多,图片也多,不划算。
有没有人指导一下小弟,谢谢了