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!

Comments
Post a Comment