日期:2014-05-18  浏览次数:20896 次

asp.net 页面间传递的问题
问题描述:信息页B.aspx是用户登录后才可以查看,但是在登录后,即使关闭页面,然后重新运行vs,那么用户即使没有登录也可以进入B.aspx页面(因为在页面传值的时候传递的用户名是存在的,还是关闭前登录的用户名)
A.aspx相关代码:
public static string username;//用户名变量,页面间传递时用到的
........
protected void ButtonMore4_Click(object sender, ImageClickEventArgs e)
 {
  if (username == null)
  {
  Response.Write("<script language=javascript>alert('登陆后才可查看');location='javascript:history.go(-1)';</script>");
  }
  else
  {
  Response.Redirect("message.aspx?Name="+username);
  }
   
  }  
我知道可能是我用静态变量的原因导致的,因为在关闭程序的时候并没有关闭服务,所以之前的值还存在,但是我应该用什么进行传递啊,如何用session 好像会有时间限制的,不好意思 初次写这个 不太了解,希望大家给予指点

------解决方案--------------------
username不要用static就行了。
------解决方案--------------------
既然知道是静态变量的原因,那把static去掉嘛
------解决方案--------------------
用cookie或session,还有viewstate都可以。

------解决方案--------------------
session
------解决方案--------------------
用户关闭网页,再重新请求网页,Session就不是原来那个了。关闭网页就让Session失效没法做,用ajax轮询是可以的,但非常耗资源,不可取。