Code代码片断(5do8)

GDI+控件线程IO流ADO.NET接口类,函数语法

新主题
lucene.net高亮,查询
7zip压缩cookie
lucene.net一个建立,查询...
c#获取IP
lucene.net 教程
c#汉字转拼音
.net json 范例
c#格式化日期
获取IIS的所有网站信息
获取和设置IIS站点信息
说话自由

首页 » .NET/C# » 类,函数 »

7zip压缩cookie

标签: 7zip SevenZip cookie Compress
using System.Text;
using System.Web;
using System.IO.Compression;
using System.Runtime.Serialization.Formatters.Binary;
using System.IO;
using SevenZip.Compression.LZMA;
namespace CompressedCookies
{
    public static class CpCookiesLzma
    {
        public static int Set(string cookieName, object cookieValue, DateTime expirationDate)
        {
            int siz = 0;
            try
            {
                BinaryFormatter bf = new BinaryFormatter();
                MemoryStream ms = new MemoryStream();
                bf.Serialize(ms, cookieValue);
                byte[] inbyt = ms.ToArray();
                byte[] b = SevenZip.Compression.LZMA.SevenZipHelper.Compress(inbyt);
                string sCookieVal = Convert.ToBase64String(b);
                HttpCookie cook = new HttpCookie(cookieName);
                cook.Value  = sCookieVal;
                siz = sCookieVal.Length;
                cook.Expires = expirationDate;
                HttpContext.Current.Response.Cookies.Add(cook);                 
            }
            catch 
            {
                
                throw ;
            }
            return siz;
        }

        public static object Get(string cookieName)
        {
            object retval = null;
            try
            {
                byte[] bytCook = Convert.FromBase64String(HttpContext.Current.Request.Cookies[cookieName].Value);

                byte[] outByt = SevenZip.Compression.LZMA.SevenZipHelper.Decompress(bytCook);
                
             
                MemoryStream outMs = new MemoryStream(outByt);
                outMs.Seek(0, 0);
                BinaryFormatter bf = new BinaryFormatter();                
                retval = (object)bf.Deserialize(outMs, null);
            }
            catch(Exception ex)
            {                
                throw ex;
            }
            return retval;
        }

        public static bool Delete(string cookieName)
        {
            bool retval = true;
            try
            {
                HttpContext.Current.Request.Cookies[cookieName].Expires = DateTime.Now.AddDays(-365);
            }
            catch
            {
                retval = false;
            }
             return retval;
        }

         
    }
}

ccdot写于2008-9-26 16:55:34

如果愿意,请留下你观点或者感受...
称呼*
内容*
验证码*