/// <summary> /// Safely adds a cookie to client browser. The existing cookie (by name) will be overwritten /// </summary> /// <param name="context"></param> /// <param name="cookieName"></param> /// <param name="cookieValue"></param> /// <param name="expiredInDay"></param> public static void AddCookie(this HttpContextBase context, string cookieName, string cookieValue, int expiredInDay = 90) { HttpCookie cookie = new HttpCookie(cookieName); cookie.Value = cookieValue; cookie.Expires = DateTime.Now.AddDays(expiredInDay); context.AddCookie(cookie); }
/// <summary> /// Delete a cookie specified by <c>cookieName</c> /// </summary> /// <param name="context"></param> /// <param name="cookieName"></param> public static void DeleteCookie(this HttpContextBase context, string cookieName) { if (context.Request.Cookies[cookieName] != null) { HttpCookie cookie = new HttpCookie(cookieName) { Expires = DateTime.Now.AddDays(-1d) }; context.AddCookie(cookie); } }
private void SaveSessionObjectDataToCookie(SessionData data, HttpContextBase context) { //for performance reason, save session object data to http context SaveSessionObjectDataToHttpContext(data, context); BinaryFormatter bin = new BinaryFormatter(); MemoryStream stream = new MemoryStream(); bin.Serialize(stream, data); string dataString = Convert.ToBase64String(stream.ToArray()); stream.Close(); string sessionId = data.Username; string ticket = string.Format("{0}{1}", DateTime.Now.Ticks, Guid.NewGuid()); string chksum = CreateChecksum(dataString, ticket, sessionId); string cookieValue = string.Format("{0}*****{1}*****{2}", dataString, ticket, chksum); context.AddCookie(_sessionDataCookieName, cookieValue); }