关于Asp.net中Cookie的问题

关于Asp.net应用cookie的问题处理:

 

1、在应用程序中有时会出现cookie混乱的问题,主要问题在RemoveCookie上,解决办法:

 

       /// <summary>

       /// 移除cookie,RequestResponse两个集合中的都清理

       ///  Code by KentLi

       /// </summary>

       /// <param name="cookieName">cookie名称</param>

      public void RemoveCookie(string cookieName)

      {

        

              HttpCookie Cookie =  HttpContext.Current.Request.Cookies[cookieName];

              if (Cookie != null)

              {
                    // 过期时间设置为立即过期        

                     Cookie.Expires=  DateTime.Now;

                     HttpContext.Current.Request.Cookies.Remove(cookieName);

              }

 

              Cookie =  HttpContext.Current.Response.Cookies[cookieName];

              if (Cookie != null)

              {
                    

                     Cookie.Expires=  DateTime.Now;

                     HttpContext.Current.Response.Cookies.Remove(cookieName);

              }

      }

 

              public void appendcook(string cookies,string cookiesvalue,int days)

              {

                     HttpCookie usercookie=new HttpCookie(cookies,cookiesvalue);

                    usercookie.Expires = DateTime.Now.AddDays(days);

                     HttpContext.Current.Response.Cookies.Add(usercookie);

              }

 


2、中文cookie的问题,在Windows 2000正常,在Windows 2003有时会不正常(几率很小,但的确存在),采用:

Server.UrlEncode();  

Server.UrlDecode();

编码和解码。

 

Cookie["MyCookie"] = Server.UrlEncode("中文")

Response.Write(Server.UrlDecode(Request.Cookies("MyCookie").Value()))

http://support.microsoft.com/default.aspx?scid=kb;en-us;313282

 

更多Cookie的相关知识

 

HttpContext.Current.Response.Cookies

HttpContext.Current.Request.Cookies

 

分别是需要写回用户客户端和从用户客户端读取的Cookie集合。


当修改Cookie的时候,为了保证同一个Asp.net 页面能访问修改后的Cookie,就必须同时修改这两个集合中的Cookie。

 


http://blog.joycode.com/ghj/archive/ 2003/11/06 /5647.aspx

http://west-wind.com/weblog/posts/1006.aspx

http://www.derkeiler.com/Newsgroups/microsoft.public.inetserver.iis.security/2004-03/0147.html

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值