.Net mvc cookie 操作封装方法

对cookie操作不太熟悉的可以参考一下。

一般来说 cookie是个针对访问者电脑存储数据的东西,可以把一个cookie看作一个表,有表名,可以有很多行,每一行有两个字段,key和value,key唯一,可以通过key找到对应的值 value.

封装方法:

        #region 设置cookie
        /// <summary>
        /// 设置cookie
        /// </summary>
        /// <param name="key">键</param>
        /// <param name="value">值</param>
        /// <param name="cookiename">cookie名称</param>
        /// <param name="cookiedays">cookie保留多少天(默认3天),可以用小数表示</param>
        public static void SetCookies(HttpResponseBase Response, HttpRequestBase Request, string key, string value, string cookiename,double cookiedays=3)
        {
            HttpCookie cookie = Request.Cookies[cookiename];
            //cookie.ExpirationSet = false;
            if (cookie == null)
            {
                cookie = new HttpCookie(cookiename);

                cookie.Values.Add(key, value);
            }
            else
            {
                if (cookie.Values[key] != null)
                {
                    cookie[key] = value;
                }
                else cookie.Values.Add(key, value);

            }
            if (HttpContext.Current != null)
            {
                if (HttpContext.Current.Request.Url.DnsSafeHost.Contains("kinpan.com"))
                {
                    cookie.Domain = "kinpan.com";
                }
            }
            //cookie.Domain = ConfigurationManager.AppSettings["kinpandomain"];
            cookie.Path = "/";
            cookie.Expires = DateTime.Now.AddDays(cookiedays);
            Response.Cookies.Remove(cookiename);
            Response.Cookies.Add(cookie);

        }
        #endregion

        #region 删除cookie
        /// <summary>
        /// 删除cookie,我们没有直接删除的权限,但是新建一个同名cookie,设置为过期,那么浏览器会去检测和删除同名的cookie。
        /// </summary>
        /// <param name="cookiename">cookie名称</param>
        public static void deleteCookie(HttpResponseBase Response,string cookiename)
        {
            if (cookiename.HasValue())
            {
                HttpCookie aCookie = new HttpCookie(cookiename);
                aCookie.Expires = DateTime.Now.AddDays(-1);
                Response.Cookies.Add(aCookie);
            }
        }
        #endregion

        #region 获取整个cookie
        /// <summary>
        /// 获取整个cookie
        /// </summary>
        /// <param name="cookiename"></param>
        /// <returns></returns>
        public static HttpCookie GetCookie(HttpRequestBase Request, string cookiename)
        {
            return HttpContext.Current.Request.Cookies[cookiename];
        }
        #endregion

        #region 获取cookie里的键对应的值
        /// <summary>
        /// 获取cookie里的键对应的值
        /// </summary>
        /// <param name="name">名称</param>
        /// <param name="key">键</param>
        /// <returns>返回键对应的值</returns>
        public static string GetCookies(HttpRequestBase Request, string name, string key)
        {
            if (String.IsNullOrEmpty(name) || String.IsNullOrEmpty(key))
            {
                return String.Empty;
            }
            else
            {
                HttpCookie cookie = Request.Cookies[name];
                if (cookie != null && cookie[key] != null)
                {
                    string value = cookie[key].ToString();
                    return HttpContext.Current.Server.UrlDecode(value);

                }
                else
                {
                    return String.Empty;
                }
            }
        }
        #endregion
时间: 2024-10-09 13:27:53

.Net mvc cookie 操作封装方法的相关文章

.net Cookie操作公共方法 CookieHelper

Cookie操作类 /// <summary> /// Cookie帮助类 /// </summary> public class CookieHelper { /// <summary> /// 写cookie值 /// </summary> /// <param name="cookieName">名称</param> /// <param name="cookieValue">

js 判断js函数、变量是否存在 JS保存和删除cookie操作,判断cookie是否存在的方法

//是否存在指定函数 function isExitsFunction(funcName) {    try {        if (typeof(eval(funcName)) == "function") {            return true;        }    } catch(e) {}    return false;}//是否存在指定变量 function isExitsVariable(variableName) {    try {        if

JS封装cookie操作函数实例(设置、读取、删除)

本文实例讲述了JS封装cookie操作函数.分享给大家供大家参考,具体如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 /*设置cookie*/ function setCookie(name, value, iDay) {   var oDate=new Date();   oDate.setDate(oDate.getDate()+iDay);   document.cook

Javascript(JS)对Cookie的读取、删除、写入操作帮助方法

1 var CookieUtils = { 2 get: function (name) { 3 var cookieName = encodeURIComponent(name) + '=', 4 cookieStart = document.cookie.indexOf(cookieName), 5 cookieValue = null; 6 if (cookieStart > -1) { 7 var cookieEnd = document.cookie.indexOf(';', cook

004.MVC视图、辅助方法

一.视图基础- 视图定义: 用户界面,是显示应用程序用户界面(UI)组件 Web应用程序:页面 作用: 1.输出/显示模型数据 2.出入提交 视图建议在View文件夹位置存储视图 视图引擎(了解):本意发动机,这里指的是:处理视图的软件(框架内部) ASP.NET Web窗体提供了一种视图引擎,称为Web窗体引擎 ASP.NET MVC1及MVC2版本中支持Web窗体引擎 ASP.NET MVC3版本除了支持Web窗体引擎,还提供了一种新的视图引擎,称为Razor(视图)引擎 Razor引擎更加

关于asp.net MVC 中的TryUpdateModel方法

有比较才会有收货,有需求才会发现更多. 在传统的WebFormk开发工作中,我们常常会存在如下的代码块 //保存 protected void btnSubmit_Click(object sender, EventArgs e) { try { BLL.MoneyBll cun = new BLL.MoneyBll(); Model.Money m1 = new Model.Money(); m1.Commany = int.Parse(this.Commany.Text); m1.Count

javascript应用cookie的封装代码

javascript应用cookie的封装代码: 关于cookie的优缺点这里就不多介绍了,都是老生长谈了,不过对于cookie的操作可能很多学习者比较陌生,下面分享一个封装好的cookie操作代码,希望能够给需要的朋友带来一定的帮助. 代码如下: var cookie=new function(){ this.set=function(name,value,hours){ var life=new Date().getTime(); life+=hours*1000*60; var cooki

Entity Framework底层操作封装V2版本(1)

因为同志们一直给我提建议说,以前发的版本有问题.所以经过了我这一年多的使用和扩展,现在方法基本稳定了.现在贴出来给大家使用: 首先上场的是数据库操作层: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Linq.Expressions; using System.Data.Objects.DataClasses; using System.Refl

Entity Framework底层操作封装V2版本(2)

这个类是真正的数据库操作类,上面的那个类只是调用了这个封装类的方法进行的操作 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Linq.Expressions; using System.Data.Entity; using System.Data.Linq; using System.Data.Objects; using System.Refl