要求写一个cookie类实现以下功能
1.保存用户名(有个checkbook是“记住用户名”)
2.用户的自动登录(有个checkbook是“自动登录”)
3.密码进行加密很急,谢谢大家。

解决方案 »

  1.   

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.IO;
    using System.Runtime.Serialization;
    using System.Runtime.Serialization.Formatters.Binary;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.HtmlControls;
    using System.Web.UI.WebControls;
    using System.Data;
    using System.Configuration;
    namespace Bll
    {
        /// <summary> 
        /// Cookie操作类 
        /// </summary> 
        public class CookieHelper
        {
            #region 保存Cookie
            /// <summary> 
            /// 保存Cookie 
            /// </summary> 
            /// <param name="CookieName">Cookie名称</param> 
            /// <param name="CookieValue">Cookie值</param> 
            /// <param name="CookieTime">Cookie过期时间(小时),0为关闭页面失效</param> 
            public static void SaveCookie(string CookieName, object CookieValue, double CookieTime)
            {
                HttpCookie myCookie = new HttpCookie(CookieName);
                DateTime now = DateTime.Now;
                myCookie.Value = ConvertObjectToString(CookieValue);
                if (CookieTime != 0)
                    myCookie.Expires = now.AddHours(CookieTime);
                if (HttpContext.Current.Response.Cookies[CookieName] != null)
                    HttpContext.Current.Response.Cookies.Remove(CookieName);
                HttpContext.Current.Response.Cookies.Add(myCookie);
            }
            private static string ConvertObjectToString(object CookieValue)
            {
                BinaryFormatter bf = new BinaryFormatter();
                MemoryStream ms = new MemoryStream();
                bf.Serialize(ms, CookieValue);
                byte[] result = new byte[ms.Length];
                result = ms.ToArray();
                string temp = System.Convert.ToBase64String(result);
                ms.Flush();
                ms.Close();
                return temp;
            }
            #endregion
            #region 取得Cookie
            /// <summary> 
            /// 取得Cookie 
            /// </summary> 
            /// <param name="CookieName">Cookie名称</param> 
            /// <returns>Cookie的值</returns> 
            public static object GetCookie(string CookieName)
            {
                HttpCookie myCookie = new HttpCookie(CookieName);
                myCookie = HttpContext.Current.Request.Cookies[CookieName];
                if (myCookie != null)
                    return ConvertStringToObject(myCookie.Value);
                else
                    return null;
            }
            private static object ConvertStringToObject(string value)
            {
                byte[] b = System.Convert.FromBase64String(value);
                MemoryStream ms = new MemoryStream(b, 0, b.Length);
                BinaryFormatter bf = new BinaryFormatter();
                return bf.Deserialize(ms);
            }
            #endregion
            #region 清除Cookie
            /// <summary> 
            /// 清除Cookie
            /// </summary> 
            /// <param name="CookieName">Cookie名称</param> 
            public static void ClearCookie(string CookieName)
            {
                HttpCookie myCookie = new HttpCookie(CookieName);
                DateTime now = DateTime.Now;
                myCookie.Expires = now.AddYears(-2);
                HttpContext.Current.Response.Cookies.Add(myCookie);
            }
            #endregion
        }
    }