代码如下
protected void Page_Load(object sender, EventArgs e)
{
if (Session["login"]==null)
{
Session["url"] = "addUser.aspx";
Jscript.AlertAndRedirect("请先登录系统", "right.aspx");
return;
} }
protected void Button1_Click(object sender, EventArgs e)
{
string strTemp = Session["login"].ToString();
} button事件会触发回调事件,所以我觉得如果session失效在点击事件发生的时候page_load中的代码应该发挥作用,提示用户重新登陆,在分部调试的过程中也印证了,但是为什么网站运行起来以后就不对了呢?session如果失效
string strTemp = Session["login"].ToString();
这里为什么会报错?
protected void Page_Load(object sender, EventArgs e)
{
if (Session["login"]==null)
{
Session["url"] = "addUser.aspx";
Jscript.AlertAndRedirect("请先登录系统", "right.aspx");
return;
} }
protected void Button1_Click(object sender, EventArgs e)
{
string strTemp = Session["login"].ToString();
} button事件会触发回调事件,所以我觉得如果session失效在点击事件发生的时候page_load中的代码应该发挥作用,提示用户重新登陆,在分部调试的过程中也印证了,但是为什么网站运行起来以后就不对了呢?session如果失效
string strTemp = Session["login"].ToString();
这里为什么会报错?
这里出了错我想问,尽然Session["login"]都已经失效了,还怎么ToString();提示错误应该是:未将对象实例化,新人更要老实点,加上Ispostback,在使用Sesion处先判断时候存在。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。源错误:
行 33: {
行 34: //string strTemp = Jhgl.Smart.Cookie.GetCookie("login");
行 35: string strTemp = Session["login"].ToString();
行 36:
行 37: if (strTemp!="1")源文件: e:\webtest\WebServer\addUser.aspx.cs 行: 35
看这个错误感觉就是我对 一个null对象使用了tostring函数,问题是page_load函数应该在button之前触发,他应该能检测到这个session对象是空的,并跳转到登陆界面去啊?这是为什么呢?
if(!IsPostback){
if (Session["login"]==null)
{
Session["url"] = "addUser.aspx";
Jscript.AlertAndRedirect("请先登录系统", "right.aspx");
return;
}
}
{
if (Session["login"]==null)
{
Session["url"] = "addUser.aspx";
Jscript.AlertAndRedirect("请先登录系统", "right.aspx");
Response.End(); // 加上这个看看
return;
} }