本人设计一个系统。超始页为login.aspx 。登录到user.aspx。user.aspx根据login.aspx提供的Session["Name"]配置其相应内容。即假如:LIMING通过login.aspx登录到user.aspx.这时user.aspx显示个人信息,修改密码等功能。LIMING的是LIMING的信息。ZHANGSAN是ZHANGSAN的信息。现在要防止用户跳到login.aspx。而直接访问user.aspx.那样的话系统就有点不合理。进去显示的个人信息都是空的。这个怎么解决。本人在user.aspx中的page_load添加语句:
if(Session["Name"].ToString().length==0)
{
   Response.Write("<Script>alert('请先登录';window.location.href='login.aspx');");
}
我的想法是:如果用户直接登录user.aspx.系统先判断Session["Name"]是否为空,如果为空,表明没有登录。系统提示对话框:请先登录。然后跳转到login.aspx。
运行结果:出错。意思是找不到Session["Name"].让先NEW。这个是什么问题。怎么解决。或者实现这个想法。

解决方案 »

  1.   

    if(Session["Name"]==null||Session["Name"].ToString().length==0)判断session是否存在  
      

  2.   

    判断为空:
    if(Session["Name"]==null)
      

  3.   

    if(Session["Name"]==null||string.IsNUllOrEmpty(Session["Name"].ToString()))
    {
      Response.Write("<Script>alert('请先登录';window.location.href='login.aspx');");
    }
      

  4.   

    你在login.aspx页的page_Load事件中设置 Session["Name"] = "";
    这样跳转传值就是空,如果你输入账号密码登陆,传值就是用户名。
      

  5.   

    为什么没用到membership里的authorization来控制页面访问?
      

  6.   

    可以把登陆验证写到一个类里  调用类判断是否为空  另外Session 运行再服务器端 有时候不太稳 定! Cookies客户端的 不太安全 容易被伪装 需要做好安全验证