Session、Cookie 帮助类

Session 帮助类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Web;
using System.Web.SessionState;

namespace Hzb.Utils.Session
{
    public class SessionHelper
    {
        private static HttpSessionState _session = HttpContext.Current.Session;

        /// <summary>
        /// 设置Session
        /// </summary>
        /// <param name="key"></param>
        /// <param name="value"></param>
        /// <param name="minute"></param>
        public static void SetSession(string key, object value, int minute)
        {
            _session[key] = value;
            _session.Timeout = minute;
        }

        /// <summary>
        /// 获取Session对象
        /// </summary>
        /// <param name="key"></param>
        /// <returns></returns>
        public static object GetSessionObject(string key)
        {
            object result = null;
            if (_session[key] != null)
            {
                result = _session[key];
            }
            return result;
        }


        /// <summary>
        /// 获取Session数字
        /// </summary>
        /// <param name="key"></param>
        /// <returns></returns>
        public static int GetSessionNumber(string key)
        {
            int result = 0;
            if (_session[key] != null)
            {
                int.TryParse(_session[key].ToString(), out result);
            }
            return result;
        }

        /// <summary>
        /// 获取Session字符串
        /// </summary>
        /// <param name="key"></param>
        /// <returns></returns>
        public static string GetSessionString(string key)
        {
            string result = "";
            if (_session[key] != null)
            {
                result = _session[key].ToString();
            }
            return result;
        }

        /// <summary>
        /// 删除Session
        /// </summary>
        /// <param name="key"></param>
        public static void Remove(string key)
        {
            if (_session[key] != null)
            {
                _session[key] = null;
            }
        }

        /// <summary>
        /// 清除Session
        /// </summary>
        public static void Clear()
        {
            _session.Clear();
        }

    }
}

Cookie 帮助类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;

namespace Hzb.Utils.Cookie
{
    /// <summary>
    /// 2015 9 17 tangli
    /// </summary>
    public static class CookieHelper
    {
        /// <summary>
        /// 获取单值Cookie的值
        /// </summary>
        /// <param name="key"></param>
        /// <returns></returns>
        public static string GetSingleValueCookieValue(string key)
        {
            //读取单值Cookie:animal
            if (HttpContext.Current.Request.Cookies[key] != null)
            {
                return HttpContext.Current.Request.Cookies[key].Value;
            }
            else
            {
                return "";
            }
        }

        /// <summary>
        /// 添加单值Cookie 含过期时间
        /// </summary>
        /// <param name="key"></param>
        /// <param name="value"></param>
        /// <param name="Expired"></param>
        public static void AddSingleValueCookie(string key, string value, DateTime Expired)
        {
            HttpResponse response = HttpContext.Current.Response;

            //声明创建
            HttpCookie ck = new HttpCookie(key);

            //设置相关值
            ck.Value = value;

            //设置过期时间
            ck.Expires = Expired;        //DateTime.Now.AddDays(1);

            //写入客户端
            response.Cookies.Add(ck);
        }

        /// <summary>
        /// 添加单值Cookie 无过期时间 默认浏览器关闭就过期 不常用
        /// </summary>
        /// <param name="key"></param>
        /// <param name="value"></param>
        public static void AddSingleValueCookie(string key, string value)
        {
            HttpResponse response = HttpContext.Current.Response;

            //声明创建
            HttpCookie ck = new HttpCookie(key);
            //设置相关值
            ck.Value = value;

            //写入客户端
            response.Cookies.Add(ck);
        }

        /// <summary>
        /// 编辑单值Cookie
        /// </summary>
        /// <param name="key"></param>
        /// <param name="value"></param>
        /// <param name="Expired"></param>
        public static void EditSingleValueCookie(string key, string value, DateTime Expired)
        {
            HttpCookie ck = HttpContext.Current.Request.Cookies[key];
            if (ck != null)
            {
                //设置相关值
                ck.Value = value;
                ck.Expires = Expired; //DateTime.MaxValue;
                HttpContext.Current.Response.Cookies.Add(ck);
            }
        }

        /// <summary>
        /// 编辑单值Cookie
        /// </summary>
        /// <param name="key"></param>
        /// <param name="value"></param>
        public static void EditSingleValueCookie(string key, string value)
        {
            HttpCookie ck = HttpContext.Current.Request.Cookies[key];
            if (ck != null)
            {
                //设置相关值
                ck.Value = value;
                HttpContext.Current.Response.Cookies.Add(ck);
            }
        }

        /// <summary>
        /// 清除单值的Cookie
        /// </summary>
        /// <param name="key"></param>
        public static void DelSingleValueCookie(string key)
        {
            HttpResponse response = HttpContext.Current.Response;

            //这种写法最标准
            response.Cookies[key].Expires = DateTime.MinValue;
        }

        /// <summary>
        /// 读取多值Cookie
        /// </summary>
        /// <param name="multi_cookie_key"></param>
        /// <param name="sub_key_Arr"></param>
        /// <returns></returns>
        public static List<string> GetMultiValueCookie(string multi_cookie_key, params string[] sub_key_Arr)
        {
            //读取多值Cookie: multi_cookie  [name,sex,age]
            HttpCookie ck = HttpContext.Current.Request.Cookies[multi_cookie_key];
            if (ck != null)
            {
                List<string> list = new List<string>();
                for (int i = 0; i < sub_key_Arr.Length; i++)
                {
                    var sub_key = sub_key_Arr[i];
                    var sub_value = ck.Values[sub_key];
                    var temp = sub_key + "=" + sub_value;
                    list.Add(temp);
                }
                //这样的程序语句更一目了然,更易维护
                //必须确定主键名称 和 子键名称
                //HttpCookie _ck = Request.Cookies["multi_cookie"];
                //txt_multiCookie.Text = _ck.Values["name"] + ","
                //                     + _ck.Values["sex"] + ","
                //                     + _ck.Values["age"] + "岁";
                return list;
            }
            else
            {
                return null;
            }
        }

        /// <summary>
        /// 添加一个多值的Cookie
        /// </summary>
        /// <param name="multi_cookie_key"></param>
        /// <param name="Expired"></param>
        /// <param name="strArr"></param>
        public static void AddMultiValueCookie(string multi_cookie_key, DateTime Expired, params string[] strArr)
        {
            HttpResponse response = HttpContext.Current.Response;
            //声明创建
            HttpCookie ck2 = new HttpCookie(multi_cookie_key);
            foreach (string item in strArr)  //item ----->name=小王
            {
                string[] arr = item.Split('=');
                ck2.Values.Add(arr[0], arr[1]);
            }
            ck2.Expires = Expired; // DateTime.MaxValue;   //设置过期时间:永不过期
            //写入客户端
            response.Cookies.Add(ck2);
        }

        /// <summary>
        /// 添加一个多值的Cookie
        /// </summary>
        /// <param name="multi_cookie_key"></param>
        /// <param name="strArr"> "name=小王","age=18","sex=男" </param>
        public static void AddMultiValueCookie(string multi_cookie_key, params string[] strArr)
        {
            HttpResponse response = HttpContext.Current.Response;
            //声明创建
            HttpCookie ck2 = new HttpCookie(multi_cookie_key);
            foreach (string item in strArr)  //item ----->name=小王
            {
                string[] arr = item.Split('=');
                ck2.Values.Add(arr[0], arr[1]);
            }
            //写入客户端
            response.Cookies.Add(ck2);
        }

        /// <summary>
        /// 清除多值的Cookie 貌似清除多值和单值 是一样的
        /// </summary>
        /// <param name="multi_cookie_key"></param>
        public static void DelMultiValueCookie(string multi_cookie_key)
        {
            HttpResponse response = HttpContext.Current.Response;
            //这种写法最标准
            response.Cookies[multi_cookie_key].Expires = DateTime.MinValue;
        }

        /// <summary>
        /// 修改 多值HttpCookie 的 其中一个子键的值
        /// </summary>
        /// <param name="multi_cookie_key"></param>
        /// <param name="sub_key"></param>
        /// <param name="sub_value"></param>
        /// <param name="Expired"></param>
        public static void EditMultiValueCookieValueBySubKey(string multi_cookie_key, string sub_key, string sub_value, DateTime Expired)
        {
            if (sub_key != "")
            {
                HttpCookie ck = HttpContext.Current.Request.Cookies[multi_cookie_key];
                if (ck != null)
                {
                    ck.Values.Set(sub_key, sub_value);
                    ck.Expires = Expired; //DateTime.MaxValue;
                    HttpContext.Current.Response.Cookies.Add(ck);
                }
            }
        }

        /// <summary>
        /// 修改 多值HttpCookie 的 其中一个子键的值
        /// </summary>
        /// <param name="multi_cookie_key"></param>
        /// <param name="sub_key"></param>
        /// <param name="sub_value"></param>
        public static void EditMultiValueCookieValueBySubKey(string multi_cookie_key, string sub_key, string sub_value)
        {
            if (sub_key != "")
            {
                HttpCookie ck = HttpContext.Current.Request.Cookies[multi_cookie_key];
                if (ck != null)
                {
                    ck.Values.Set(sub_key, sub_value);
                    HttpContext.Current.Response.Cookies.Add(ck);
                }
            }
        }

        /// <summary>
        /// 删除 多值HttpCookie 的 其中一个子键的值
        /// </summary>
        /// <param name="multi_cookie_key"></param>
        /// <param name="sub_key"></param>
        /// <param name="Expired"></param>
        public static void DelMultiValueCookieValueBySubKey(string multi_cookie_key, string sub_key, DateTime Expired)
        {
            HttpCookie ck = HttpContext.Current.Request.Cookies[multi_cookie_key];
            if (ck != null)
            {
                ck.Values.Remove(sub_key);
                ck.Expires = Expired;
                HttpContext.Current.Response.Cookies.Add(ck);
            }
        }

        /// <summary>
        /// 删除 多值HttpCookie 的 其中一个子键的值
        /// </summary>
        /// <param name="multi_cookie_key"></param>
        /// <param name="sub_key"></param>
        public static void DelMultiValueCookieValueBySubKey(string multi_cookie_key, string sub_key)
        {
            HttpCookie ck = HttpContext.Current.Request.Cookies[multi_cookie_key];
            if (ck != null)
            {
                ck.Values.Remove(sub_key);
                HttpContext.Current.Response.Cookies.Add(ck);
            }
        }

        /// <summary>
        /// 删除 多值HttpCookie 所有的子键的值
        /// </summary>
        /// <param name="multi_cookie_key"></param>
        /// <param name="Expired"></param>
        public static void DelMultiValueCookieValues(string multi_cookie_key, DateTime Expired)
        {
            HttpCookie ck = HttpContext.Current.Request.Cookies[multi_cookie_key];
            ck.Values.Clear();
            ck.Expires = Expired;
            HttpContext.Current.Response.Cookies.Add(ck);
        }

        /// <summary>
        /// 删除 多值HttpCookie 所有的子键的值
        /// </summary>
        /// <param name="multi_cookie_key"></param>
        public static void DelMultiValueCookieValues(string multi_cookie_key)
        {
            HttpCookie ck = HttpContext.Current.Request.Cookies[multi_cookie_key];
            ck.Values.Clear();
            HttpContext.Current.Response.Cookies.Add(ck);
        }

        /// <summary>
        /// 遍历清除所有的Cookie
        /// </summary>
        public static void DelAllCookie()
        {
            foreach (string _key in HttpContext.Current.Request.Cookies.AllKeys)
            {
                HttpContext.Current.Response.Cookies[_key].Expires = DateTime.MinValue;
            }
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值