我在做登陆窗体时,用了Session来传值,即用:Session["user"] 这样来保存登录的用户名,
这样做可以成功地保存和登录进去,但是当我退出了整个应用程序之后,Session["user"]并没有变为null,当用户再次浏览其它页面时(他不从登录页面开始进去,而是直接访问另外的面页),系统已经默认用户已经登录了,其实用户并没有去登录?
本来我是这样来判断用户是否登录的:
if(Session["user"]==null)
{
   ..转到登录页面让用户去登录...
}
但是现在却转不到了,我该怎么去释放这个Session值??不知道小弟讲清楚没有,谢谢了

解决方案 »

  1.   

    另外忘了说了,我已经在Global.asax文件中进行这样的处理,不过无效:protected void Session_End(Object sender, EventArgs e)
    {
    Session.RemoveAll(); 
    Session["popedom"]=null;
    Session["user"]=null;
    }
      

  2.   

    当用户直接关闭浏览器的时候,session并不会被释放掉,因为它是在服务器端管理的
    像你这种情况,应该用form验证,不登录,其他页面是不能浏览并返回到登录页面
      

  3.   

    楼上的说得对,用SESSION实现这类功能并不好,还是应该在webconfig里用验证来实现
      

  4.   

    楼主.用FORM吧.你查一下窗体验证,好多的.主要是在WEB.CONFIG中进行一下设置就可以了.
      

  5.   

    <authentication mode="Forms"> 
    <forms name=".mycookiedemo" loginUrl="login.aspx" protection="All" timeout="30"/>
    </authentication>我这样设置了,怎么没有登录时,它不会自动跳到登录页面的??