我是个菜鸟,用asp.net写了一个简单的登陆功能,大概是这样default.aspx是登陆页面登陆成功跳转到main.html页面,此页面用的是框架结构,含三个.aspx页面。我在每个页面都有判断是否登陆超时的代码,代码如下
protected void Page_Load(object sender, EventArgs e)
{
//是否已经登陆
if (!IsPostBack)
{
if (Session["login"] == null)
{
Response.Write("<script language='javascript'>alert('登陆已超时,请重新登陆!');window.parent.location='default.aspx';</script>");
return;
}
}
}
现在出现这样的情况,在IE9(其它版本的ie没测试)下,如果超时,能提示并自动转到default.asp页面,但无法正常登陆了,点登陆后就立刻弹出alert('登陆已超时,请重新登陆!');但在火狐下测试正常,请问怎么解决?另外想请教下,有没有更好的实现方法?
protected void Page_Load(object sender, EventArgs e)
{
//是否已经登陆
if (!IsPostBack)
{
if (Session["login"] == null)
{
Response.Write("<script language='javascript'>alert('登陆已超时,请重新登陆!');window.parent.location='default.aspx';</script>");
return;
}
}
}
现在出现这样的情况,在IE9(其它版本的ie没测试)下,如果超时,能提示并自动转到default.asp页面,但无法正常登陆了,点登陆后就立刻弹出alert('登陆已超时,请重新登陆!');但在火狐下测试正常,请问怎么解决?另外想请教下,有没有更好的实现方法?
解决方案 »
- 获取gridview中label控件的值
- 请问如何在C#中覆盖Javascript中设置的Cookies
- FreeTextBox在VS2005中好好的,但在VS2008中系统提示控件创建错误
- 谁有用AJAX做的聊天室?
- 网站登录用户 经常性的掉线(被迫)
- 如何获得已知文件类型的MIME?谢谢!!!!!!!!
- 请把自己用asp.net做过的网站的网址show一下,供小弟学习一下
- 关于文本框的输入数据库的奇怪问题!
- 关于GridView导出成Excel的一道超级难题,郁闷死我了,请大家帮忙看看啊,谢谢啦!!!!!!!!
- asp.net 实现多条件查询 包括时间
- Gridview 第一列自动排列
- 搜索功能出问题啦,急求各位大哥出手相助
{
Response.Write("<script language='javascript'>alert('登陆已超时,请重新登陆!');window.parent.location='default.aspx';</script>");
return;
}
这句应该在 ispostback 外面 并且要在ispostback前面
不管你是不是postback都得判断用户是否登录。
登录页面不要做这一判断,因为你要登录,否则你永远登录不了
我前面没说清楚,我在登陆页面没有加这些代码,另外我也试着把ispostback判断删除试了,也同样没有用。
if (!IsPostBack)
这个本身就不对,不管是不是回发,都要判断,不过影响不大,你跟踪下 看先session的值是不是有问题?
{
Response.Write("<script language='javascript'>alert('登陆已超时,请重新登陆!');window.parent.location='default.aspx';</script>");
return;
}
不知道你的这段代码是在什么位置,应该是在点击登录按钮的时候首先执行了这段代码,按照一般登录页面的方法,这段代码没必要放在登陆页,因为登录页面没有任何权限操作,只是判断用户名和密码是否正确,正确之后跳转到合适的页面,这段直接删掉就行
谢谢大家的回复,不过大家都没看看仔细我的话,我可以在火狐下测试正常,当然肯定对Session进行了赋值,另外我肯定也没有在登陆页面判断有没有登陆的,那些验证的代码都是放在登陆后的页面。