首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

用Session做实现退出登录,如何也不行

2012-03-05 
用Session做实现退出登录,怎么也不行做了两个页面A页面:登录页面,放置了用户名和口令两个文本框和一个按钮

用Session做实现退出登录,怎么也不行
做了两个页面
A页面:   登录页面,放置了用户名和口令两个文本框和一个按钮
      html:
<body>
        <form   id= "form1 "   runat= "server ">
        <div>
                <asp:TextBox   ID= "uid "   runat= "server "> </asp:TextBox>
                <asp:TextBox   ID= "pwd "   runat= "server "> </asp:TextBox>
                <asp:Button   ID= "Cmd "   runat= "server "   OnClick= "Cmd_Click "   Text= "登录 "   /> </div>
        </form>
</body>

      cs:
      protected   void   Cmd_Click(object   sender,   EventArgs   e)
        {
                if   (uid.Text   ==   "a "   &&   pwd.Text   ==   "123 ")
                {
                        Session[ "login "]   =   "ok ";
                        Response.Redirect( "B.aspx ");
                }
        }

B页面:放了一个按钮,点击这个按钮,退出Session
      html:
      <body>
        <form   id= "form1 "   runat= "server ">
        <div>
                <asp:Button   ID= "Button1 "   runat= "server "   OnClick= "Button1_Click "   Text= "退出登录 "   /> </div>
        </form>
</body>

      CS:
      protected   void   Page_Load(object   sender,   EventArgs   e)
        {
                if   (Session[ "login "]   ==   null)
                        Response.Redirect( "A.aspx ");
                else
                        if   (Session[ "login "]   !=   "ok ")
                                Response.Redirect( "A.aspx ");
        }
        protected   void   Button1_Click(object   sender,   EventArgs   e)
        {
                Session[ "login "]   =   null;
        }

      现在出现的问题是:如果直接打开B页面,自动会回到A页面,但是如果在A页面上成功登录,进入B页面,接着点那个退出登录按钮,这个时候在地址栏里输入B页面地址,并不能跳到A页面,感觉是Session[ "login "]   =   null   没有起作用。
      大家帮我看看是什么问题啊,自己试了n遍,实在受不了了

------解决方案--------------------


可选其他途径
1.session.abandon用于结束会话,将立即销毁session对象并释放其所占用的资源,也可用2.Session.Contents.Remove( "login ")来删除session( "UserName ")的变量引用,也可用3.Session.Contents.RemoveAll来删除所有的Session的变量引用

[解决办法]
会不会是你的信息记录到cookie 里面去了?
[解决办法]
protected void Page_Load(object sender, EventArgs e)
{
if (Session[ "login "]==null)
{
Response.Redirect( "A.aspx ");
}
}
protected void Button1_Click(object sender, EventArgs e)
{
Session[ "login "] = null;
Response.Redirect( "A.aspx ");
}
[解决办法]
退出session可以考虑这样做

if (Session[ "login "] != null)
{
Session.Abandon();
//如果有cookie则清除cookie
Response.Cookies[ "Login "].Expires = DateTime.Now;
}
Response.Redirect( "Default.aspx ");

热点排行