zoukankan      html  css  js  c++  java
  • Cookie的简单用法

     Cookie大家肯定很熟悉了,平时用的地方很多,现在我简单的介绍其的增删改查的方法,当然核心还是添加现在先给一个简单的图来说明添加Cookie的两种方式

    现在开始慢慢解释以上的图

    第一步:添加Cookie

    添加Cookie有两种方式一种带子键的另外一种没有。其实我们可以把Cookie当做一个对象

    1:没有子键的添加

    我们先给我们创建的Cookie取一个名字,然后在这个Cookie进行赋值,当然可以设置Cookie的其他属性比喻过期时间是咱们最常用的,最后添加response中,这样就添加一个Cookie了。

    2:有子键的添加

    同样需要给新建的Cookie取一个名字,然后给Cookie对象添加子键,并且赋值

    #region 添加Cookie
            /// <summary>
            /// 设置一个cookie值
            /// </summary>
            /// <param name="key"></param>
            /// <param name="value"></param>
            /// <param name="duration">持续时间,默认单位为4小时</param>
            public static void SetCookie(string cookieName, string key, string value, double duration = 4.0) {
                if (HttpContext.Current == null || string.IsNullOrEmpty(key) || string.IsNullOrEmpty(value)) return;
                var cookie = new HttpCookie(cookieName);//创建并命名新的Cookie。
                cookie.Expires = DateTime.Now.AddHours(4.0);//设置过期时间
                if (!string.IsNullOrEmpty(key)) {
                    cookie.Values.Add(key, value);//有子键
                }
                else {
                    cookie.Value = value;//没有子键
                }
                HttpContext.Current.Response.Cookies.Add(cookie);
            }
    
            #endregion

    第二步:删除Cookie

    删除Cookie同样考虑是否存在子键,如果有子键就删除这个子键,没有没有直接就移除这个Cookie

    #region 删除Cookie
            /// <summary>
            /// 删除Cookie
            /// </summary>
            /// <param name="cookieName">Cookie名称</param>
            /// <param name="key">Cookie子键</param>
            public static void Delete(string cookieName, string key) {
                HttpResponse response = HttpContext.Current.Response;
                if (response != null) {
                    HttpCookie cookie = response.Cookies[cookieName];
                    if (cookie != null) {
                        if (!string.IsNullOrEmpty(key) && cookie.HasKeys) {
                            cookie.Values.Remove(key);
                        }
                        else {
                            response.Cookies.Remove(cookieName);
                        }
                    }
                }
            }
    
            #endregion

    第三步:获取Cookie

    获取Cookie也是通过Cookie名称或者Cookie名称和子键来获取看以下代码

        #region 获取Cookie
            /// <summary>
            /// 根据Cookie名称和子键获取Cookie值(子键可为空)
            /// </summary>
            /// <param name="CookieName">Cookie名称</param>
            /// <param name="Key">Cookie子键</param>
            /// <returns></returns>
            public static string GetValue(string cookieName, string key) {
                if (string.IsNullOrEmpty(cookieName) || HttpContext.Current.Request == null) {
                    return "";
                }
                if (HttpContext.Current.Request.Cookies[cookieName] != null) {
                    if (!string.IsNullOrEmpty(key) && HttpContext.Current.Request.Cookies[cookieName].HasKeys) {
                        return HttpContext.Current.Request.Cookies[cookieName].Values[key];
                    }
                    else {
                        return HttpContext.Current.Request.Cookies[cookieName].Value;
                    }
                }
                return "";
            }
            #endregion
  • 相关阅读:
    pip或easy_install安装库报错:SSL: CERTIFICATE_VERIFY_FAILED
    js 闭包
    php 安装xdebug进行调试(phpstorm)
    Linux下一个最简单的不依赖第三库的的C程序(2)
    Linux下一个最简单的不依赖第三库的的C程序(1)
    windbg .net 程序的死锁检测 常用方法(个人备份笔记)
    自定义经纬度索引(非RTree、Morton Code[z order curve]、Geohash的方式)
    通过经纬度坐标计算距离的方法(经纬度距离计算)
    根据2个经纬度点,计算这2个经纬度点之间的距离(通过经度纬度得到距离)
    The version of SOS does not match the version of CLR you are debugging; SOS.dll版本不匹配; Dump文件不同环境mscordacwks.dll版本问题
  • 原文地址:https://www.cnblogs.com/LipeiNet/p/4790617.html
Copyright © 2011-2022 走看看