小弟要做一个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.   

    if(Session["LoginID"].ToString() == "" && Session["LoginID"] == null)
    改为
    if(Session["LoginID"] == "" && Session["LoginID"].tostring =="") 
    试试
      

  2.   

    写错
    if(Session["LoginID"] == null && Session["LoginID"].tostring =="")
      

  3.   

    继续写错,貌似是
    if(Session["LoginID"] == null || Session["LoginID"].ToString =="")难道是页面缓存问题?你Logout后在敲入http://localhost/Main.aspx,再点下刷新,看会怎么样。
      

  4.   

    那第二个问题呢?有没有什么办法保证自己的HTML页不能被修改
      

  5.   

    如果页面编译输出到客户端,你是没办法保证html不被修改的。有时候关键的信息也保存在hidden中,就要加密,对客户端提交回来的关键数据要进行服务器端的验证。
      

  6.   

    有时候要在HTML中写一些Javascript脚本,如何保证HTML不能被别人修改
    ——————————————————————————————————————————
    客户端程序向服务器发送命令是它自己控制的,你发出去的html就是泼出去的水。好比你跟一个人说中国话,他却听成了一句越南话,并且它因此给你了一个完全驴唇不对马嘴的请求操作的信令。你无法也不必臆断它的理解过程,你应该在自己的业务逻辑中保证逻辑一致性。服务器发出的html可能被浏览器给改掉了,例如被用户自己写的程序改掉了,服务器控制客户端怎么理解信息,只能做好服务器该做的事,并且能够处理最坏的情况。
      

  7.   

    if( Session["USERNAME"]==null || Session["USERNAME"].ToString() == String.Empty )