2013-10-04 91 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,因爲你目前正在做..刪除該行 –