小弟要做一个B/S查询系统,有几个问题不甚了解,希望各位天才、高手、牛人……不吝赐教:
1、如何实现登陆系统后的注销问题
例如:
在登陆页面index.aspx中输入正确的用户名和密码后会创建一个Session["LoginID"];
登陆系统后地址栏中显示的地址是:http://localhost/Main.aspx.这个页面即为系统主页面,在这个页面中点击退出按钮后转到login_out.aspx页面,在login_out.aspx页面中写入以后代码:
private void Page_Load(object sender, System.EventArgs e)
{
try
{
if(Session["LoginID"].ToString() == "" && Session["LoginID"] == null)
{
Response.Write("<script>alert('请先登陆本系统!')</script>");
Response.Redirect("index.aspx");
}
else
{
Session["LoginID"] = "";
Session["LoginID"] = null;
Session.Abandon();
Response.Redirect("index.aspx"); //返回登陆页面
}
}
catch(Exception ex)
{
Response.Write("<script>alert('"+ex.Message+"');location.href='index.aspx'</script>");//返回登陆页面
}
}但当我点击退出按钮后,返回到登陆页面(没有关闭浏览器),直接在IE地址栏中敲入http://localhost/Main.aspx后同样可以登陆系统。但我在这个页面中做了判断,如果Session["LoginID"]为空就要返回到登陆页面,怎么还能正打开主页面?这个问题该怎么处理2、有时候要在HTML中写一些Javascript脚本,如何保证HTML不能被别人修改谢谢!
1、如何实现登陆系统后的注销问题
例如:
在登陆页面index.aspx中输入正确的用户名和密码后会创建一个Session["LoginID"];
登陆系统后地址栏中显示的地址是:http://localhost/Main.aspx.这个页面即为系统主页面,在这个页面中点击退出按钮后转到login_out.aspx页面,在login_out.aspx页面中写入以后代码:
private void Page_Load(object sender, System.EventArgs e)
{
try
{
if(Session["LoginID"].ToString() == "" && Session["LoginID"] == null)
{
Response.Write("<script>alert('请先登陆本系统!')</script>");
Response.Redirect("index.aspx");
}
else
{
Session["LoginID"] = "";
Session["LoginID"] = null;
Session.Abandon();
Response.Redirect("index.aspx"); //返回登陆页面
}
}
catch(Exception ex)
{
Response.Write("<script>alert('"+ex.Message+"');location.href='index.aspx'</script>");//返回登陆页面
}
}但当我点击退出按钮后,返回到登陆页面(没有关闭浏览器),直接在IE地址栏中敲入http://localhost/Main.aspx后同样可以登陆系统。但我在这个页面中做了判断,如果Session["LoginID"]为空就要返回到登陆页面,怎么还能正打开主页面?这个问题该怎么处理2、有时候要在HTML中写一些Javascript脚本,如何保证HTML不能被别人修改谢谢!
改为
if(Session["LoginID"] == "" && Session["LoginID"].tostring =="")
试试
if(Session["LoginID"] == null && Session["LoginID"].tostring =="")
if(Session["LoginID"] == null || Session["LoginID"].ToString =="")难道是页面缓存问题?你Logout后在敲入http://localhost/Main.aspx,再点下刷新,看会怎么样。
——————————————————————————————————————————
客户端程序向服务器发送命令是它自己控制的,你发出去的html就是泼出去的水。好比你跟一个人说中国话,他却听成了一句越南话,并且它因此给你了一个完全驴唇不对马嘴的请求操作的信令。你无法也不必臆断它的理解过程,你应该在自己的业务逻辑中保证逻辑一致性。服务器发出的html可能被浏览器给改掉了,例如被用户自己写的程序改掉了,服务器控制客户端怎么理解信息,只能做好服务器该做的事,并且能够处理最坏的情况。