Something To Code

All about programming and information security

A cookie wrapper class. Easily read, create, update and delete cookies in MVC

Create a new class with name CookieHelper.cs In your project and paste the following code.

public class CookieHelper
    {
        #region Constants

        /// <summary>
        /// The cookie name
        /// </summary>
        public const string cookieName = "UserName";

        #endregion

        #region Enums

        public enum EnumCookieInterval
        {
            SECOND = 0,
            MINUTE = 1,
            DAY = 2,
            MONTH = 3,
            YEAR = 4
        };

        #endregion

        #region Utilities

        /// <summary>
        /// Calculates the cookie lifetime.
        /// </summary>
        /// <param name="duration">The duration.</param>
        /// <param name="durationType">Type of the duration.Use enum to specify</param>
        /// <returns>Expire date for cookie</returns>
        private static DateTime CalculateCookieLifetime(int duration, Enum durationType)
        {
            DateTime cookieExpire = DateTime.Now;

            switch (Convert.ToInt32(durationType))
            {
                case 0:
                    cookieExpire = DateTime.Now.AddSeconds(duration);
                    break;

                case 1:
                    cookieExpire = DateTime.Now.AddMinutes(duration);
                    break;

                case 2:
                    cookieExpire = DateTime.Now.AddDays(duration);
                    break;

                case 3:
                    cookieExpire = DateTime.Now.AddMonths(duration);
                    break;

                case 4:
                    cookieExpire = DateTime.Now.AddYears(duration);
                    break;

                default:
                    cookieExpire = DateTime.Now.AddDays(duration);
                    break;
            }
            return cookieExpire;
        }
        
        #endregion

        #region Methods

        /// <summary>
        /// Creates the cookie.
        /// </summary>
        /// <param name="cookieName">Name of the cookie.</param>
        /// <param name="cookieValue">The cookie value.</param>
        /// <param name="durationType">Type of the duration.Use enum to specify</param>
        /// <param name="duration">The duration.</param>
        /// <returns></returns>
        public static string CreateCookie(string cookieName, string cookieValue, Enum durationType, int duration)
        {

            HttpCookie myCookie = new HttpCookie(cookieName);

            // Set the cookie value.
            myCookie.Value = cookieValue;

            // Set the cookie expiration date.
            myCookie.Expires = CalculateCookieLifetime(duration, durationType);

            // Add the cookie.
            //Response.Cookies.Add(myCookie);
            HttpContext.Current.Response.Cookies.Add(myCookie);

            return cookieValue;

        }

        /// <summary>
        /// Reads the cookie.
        /// </summary>
        /// <param name="cookieName">Name of the cookie.</param>
        /// <returns></returns>
        public static string ReadCookie(string cookieName)
        {

            string cookieValue = string.Empty;

            HttpCookie myCookie = new HttpCookie(cookieName);
            myCookie = HttpContext.Current.Request.Cookies[cookieName];

            // Read the cookie information and display it.
            if (myCookie != null)
                cookieValue = myCookie.Value;


            return cookieValue;
        }

        /// <summary>
        /// Updates the cookie.
        /// </summary>
        /// <param name="cookieName">Name of the cookie.</param>
        /// <param name="cookieValue">The cookie value.</param>
        /// <param name="durationType">Type of the duration.Use enum to specify</param>
        /// <param name="duration">The duration.</param>
        /// <returns></returns>
        public static string UpdateCookie(string cookieName, string cookieValue, Enum durationType, int duration)
        {

            HttpCookie myCookie = new HttpCookie(cookieName);
            myCookie = HttpContext.Current.Request.Cookies[cookieName];

            // Set the cookie value.
            myCookie.Value = cookieValue;

            // Set the cookie expiration date.
            myCookie.Expires = CalculateCookieLifetime(duration, durationType);

            // Add the cookie.
            //Response.Cookies.Add(myCookie);
            HttpContext.Current.Response.Cookies.Add(myCookie);

            return cookieValue;

        }

        /// <summary>
        /// Deletes the cookie.
        /// </summary>
        /// <param name="cookieName">Name of the cookie.</param>
        public static void DeleteCookie(string cookieName)
        {
            HttpCookie myCookie = new HttpCookie(cookieName);

            DateTime cookieExpire = DateTime.Now;

            // Set the cookie expiration date.
            myCookie.Expires = cookieExpire.AddDays(-1);
            HttpContext.Current.Response.Cookies.Add(myCookie);

        }

        #endregion
    }

 

How to use?

1. Create cookie 

 string cookie = CookieHelper.CreateCookie(CookieHelper.cookieName, "Here is cookie value", CookieHelper.EnumCookieInterval.DAY, 7);
 string cookie = CookieHelper.CreateCookie(CookieHelper.cookieName, "Here is cookie value", CookieHelper.EnumCookieInterval.MONTH, 1);

2. Read Cookie

string cookie = CookieHelper.ReadCookie(CookieHelper.cookieName);

3. Update Cookie

string newCookie = CookieHelper.UpdateCookie(CookieHelper.cookieName, "Updated cookie value", CookieHelper.EnumCookieInterval.DAY, 14);

4. Delete Cookie

CookieHelper.DeleteCookie(CookieHelper.cookieName);

Hope it will helps you. Let me know your thoughts!

 

Loading