我做一小网站,有登陆界面,要输入用户名和密码,我在登录成功后,用cookie记录 登录的用户名,我转到该网站的其他页面,点击“退出”按钮退出返回登录界面,在按钮事件了如何清除已记录的用户名?谢谢。100分压上,虚心向各位大虾学习。

解决方案 »

  1.   

    HttpCookie   cookie=Request.Cookies["YourCookieName"];   cookie.Expires=DateTime.Today.AddDays(-1);  
      
    Response.Cookies.Add(cookie);   
      

  2.   

    清除cookie的话,需要将其设为过期,貌似不能直接删除。
      

  3.   

    清除Cookie只要把日期设为负的 
    Response.Cookies[ "test "].Expires   =   DateTime.Now.AddYears(-1);
      

  4.   

    这样写的话,我登录后,关闭浏览器,cookie也会过期?
      

  5.   

    清除cookie就把过期时间设置为负即可System.Web.HttpContext.Current.Response.Cookies.Remove();
    这个并不能真正的清除cookie
      

  6.   

    在开发ASP。NET 应用程序时,通常会遇到登陆退出时清除Cookie无错误但就是清除不了Cookie,可以在firefox中看到Cookie并未清除。
    通常我们会把一些常用的方法写到类库中进行重用,这对于开发来说是一件不错的做法,提高代码重用性,提高工作效率.
            public static bool DeleteCookie(string CookieName)
            {
                System.Web.HttpContext.Current.Response.Cookies.Remove(CookieName);
                return true;
            }
    //当用尝试用上面的方法去清除登录的Cookie时,发现并没有清除我的Cookie,重刷页面时登录状态还在
    //这个问题花了不少时间来调试,百般无奈,最后找到了一个方法可以解决//strPageDomain 主要是应用在当Cookie需要跨域时,用来访问strPageDomain这个域名下的Cookie
    HttpCookie MyCo;
               if (_strPageDomain != null && _strPageDomain != "")
               {
                   MyCo = HttpContext.Current.Request.Cookies["UserID"];
                   if (System.Web.HttpContext.Current.Request.ServerVariables.ToString().IndexOf(_strPageDomain) >= 0 && MyCo != null)
                   {
                       MyCo.Domain = _strPageDomain;
                       MyCo.Expires = DateTime.Now.AddHours(-24); //关键是这一句
                       HttpContext.Current.Response.Cookies.Add(MyCo);               }
               }
               else
               {
                   MyCo = HttpContext.Current.Request.Cookies["UserID"];
                   if (MyCo != null)
                   {
                       MyCo.Expires = DateTime.Now.AddHours(-48);                   
                       HttpContext.Current.Response.Cookies.Add(MyCo);
                   }           }
    在今后的开发中,需注意在网站需要用到一个Cookie,add cookie时需先把存在的delet,然后再add,有时发现add同一个名称的cookie时并不是把旧的Cookie复盖。
      

  7.   

    参考一下:http://topic.csdn.net/u/20081226/08/9a4f3e50-d7a2-4df9-b388-3681bf78cc39.html
      

  8.   

    用Request.Cookies.Clear()可以吗?我用了,清除之后,转到登陆界面时又有值了。
      

  9.   

    foreach (string cookieName in Request.Cookies.AllKeys) 
              { 
                  HttpCookie cookie = Request.Cookies[cookieName]; 
                  cookie.Expires = DateTime.Today.AddDays(-5); 
                  Response.Cookies.Add(cookie); 
              } 
      

  10.   

    设置过期时间为负其实就是把以前的cookie给覆盖掉
      

  11.   

    MSDN上的标准是:Expires = DateTime.Now.AddHours(-1D)