• 关于Cookies


    (一)用法:
    response.cookies用来设置cookies  
    request.cookies用来读取cookies  

    HttpCookie cookie = new HttpCookie["zh"];
    cookie.Value = "中华人民共和国";
    Response.AppendCookie(cookie);

    取出Cookie值也很简单

    HttpCookie cookie = Request.Cookies["zh"];
    cookieValue = cookie.Value;
    (二)问题处理:
    1、在应用程序中有时会出现cookie混乱的问题,主要问题在RemoveCookie上,解决办法:
           /// <summary>
           /// 移除cookie,将Request和Response两个集合中的都清理
           ///  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()))

    HttpContext.Current.Response.Cookies
    HttpContext.Current.Request.Cookies

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

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

  • 相关阅读:
    ubuntu下libjson-c库的使用问题备忘
    SAX PULL解析实例
    C# 自己定义 implicit和explicit转换
    游戏行业创业分析
    【kotlin】long转化为date类型 或者date字符串
    【kotlin】报错 Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver of type List<String>?
    【spring boot】注解@ApiParam @PathVariable @RequestParam三者区别
    【Mybatis】 Mybatis在xml文件中处理大于号小于号的方法【问题】
    【hql】spring data jpa中 @Query使用hql查询 问题
    【IntelliJ IDEA】2017.3.4版本永久破解
  • 原文地址:https://www.cnblogs.com/zhangpengshou/p/887274.html
Copyright © 2020-2023  润新知