A cookie wrapper class in MVC

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.

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.

Cookie Helper Class

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!

If you find anything inappropriate please report it here.

Leave a Reply

Please login to post comments.

Top