2013-10-04 89 views
0

我有一个让我登录的复选框,所以我使用cookie来实现它,但我的问题是,我有2个链接注销,当我点击每一个我不是被重定向到登录页面,因为在登录页面的负载我正在测试,如果cookie是满的,它总是满的..因为当注销我无法清除cookie ...我试图调用从后端清除cookie的功能,但它没有启动,所以你能帮助我吗?注销时清除Cookies

Protected Sub btn_login_Click(sender As Object, e As System.EventArgs) Handles btn_login.Click 
    If Session("valid") Then 
     If (loginkeeping.Checked = True) Then 
      Dim mycookie As New HttpCookie("LoginDetail") 
      Dim username As TextBox = Page.FindControl("username_txtt") 
      Dim password As TextBox = Page.FindControl("passwordsignup") 
      mycookie.Values("Username") = username.Text.Trim() 
      mycookie.Values("Password") = password.Text.Trim() 
      'mycookie.Expires = System.DateTime.Now.AddDays(1) 

      Response.Cookies.Add(mycookie) 
     End If 
     Response.Redirect("Insert_Content.aspx") 
    End If 
End Sub 


    Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load 
    If Not (Response.Cookies("LoginDetail") Is Nothing) Then 
     Response.Redirect("Insert_Content.aspx") 
    End If 
End Sub 

asp.net:

<ul id="nav" class="fl"> 
      <li class="v-sep"> 
       <asp:HyperLink ID="logUser" runat="server" class="round button dark menu-user image-left"></asp:HyperLink> 
       <ul> 
        <li><asp:HyperLink ID="Myprofile" NavigateUrl="~/Profile.aspx" runat="server">My Profile</asp:HyperLink> 
        <li><asp:HyperLink ID="changePAss" NavigateUrl="~/Change_Password.aspx" runat="server">Change Password</asp:HyperLink></li> 
        <li><asp:HyperLink ID="logout" NavigateUrl="~/LOGIN.aspx" runat="server" onClick="logoutt">Log out</asp:HyperLink></li> 
       </ul> 
      </li> 
      <li><a href="LOGIN.aspx" runat="server" class="round button dark menu-logoff image-left" onClick="logoutt">Log out</a></li> 
     </ul> <!-- end nav --> 


Public Sub logoutt() 
    Dim CookieName As HttpCookie = Request.Cookies("username") 
    CookieName.Expires.AddMilliseconds(1) 
    CookieName.Value = Nothing 
    Response.Cookies.Add(CookieName) 
End Sub 

回答

1

约饼干棘手的是,即使你清除Cookies他们仍然存在。所以,我们唯一能做的就是删除cookie信息。

调用Cookies集合的Remove方法会从服务器端的集合中删除cookie,因此cookie不会发送到客户端。但是,如果该方法已经存在,该方法不会从客户端移除cookie。

You are misssing on following syntax: 

Protected Sub btn_logout_Click(sender As Object, e As System.EventArgs) Handles 

您需要提供的参数给事件处理..

使用下面的代码清除Cookie:

If (Not Request.Cookies("username") Is Nothing) Then 
    Dim myCookie As HttpCookie 
    myCookie = New HttpCookie("username") 
    myCookie.Expires = DateTime.Now.AddDays(-1D) 
    Response.Cookies.Add(myCookie) 
End If 

希望这有助于..

创建一个新的同名饼干,然后通过设置到期时间过期

+0

okey ...但是,如果你检查我的asp代码,我不能清除我的cookie,当点击注销 – User7291

+0

尝试给予过去的日期.. –

+0

你已经创建了一个同名的cookie,但不应该分配它与旧的cookie,因为你目前正在做..删除该行 –