public void SaveCookie(string name, DateTime?expires)
 {
     try
     {
         if (ToString() == originalCookieValue && WasEncrypted == StormContext.Configuration.EncryptCookie)
         {
             return;
         }
         var data   = Encrypt();
         var cookie = new HttpCookie(name, data);
         if (StormContext.IsSsl)
         {
             cookie.HttpOnly = true;
             cookie.Secure   = true;
         }
         if (expires.HasValue)
         {
             if (expires.Value > DateTime.Now.AddYears(1))
             {
                 expires = DateTime.Now.AddYears(1);
             }
             cookie.Expires = expires.Value;
         }
         StormContext.AddCookie(cookie);
         originalCookieValue = ToString(); // Avoid saving the same cookie twice
         Log.LogEntry.Categories(CategoryFlags.Debug).Message("Saved cookie {0}: {1}", name, data).WriteVerbose();
     }
     catch { }
 }