保存时、
   Response.Cookies["user"] = u;
                Response.Cookies["user"].Expires = DateTime.Now.AddDays(1);
获取时、
Users u=Request.Cookies["user"];回去时怎么转换成 Users. Users是某个实体类Users u=Request.Cookies["user"] as Users; 为何这样不行了呢

解决方案 »

  1.   

    貌似不可以转吧他里面放的东西建议就是字符串等内容 实体的话他会给转成Object
    Users u=(user)Request.Cookies["user"]
    试试这样行不行 如果不行那就继续坐等大侠吧。
      

  2.   

    你这写法太疯狂了吧,直接将实体放到cookie里
    /// <summary>
            /// 创建COOKIE对象并赋多个KEY键值
            /// 设键/值如下:
            /// NameValueCollection myCol = new NameValueCollection();
            /// myCol.Add("red", "rojo");
            /// myCol.Add("green", "verde");
            /// myCol.Add("blue", "azul");
            /// myCol.Add("red", "rouge");   结果“red:rojo,rouge;green:verde;blue:azul”
            /// </summary>
            /// <param name="strCookieName">COOKIE对象名</param>
            /// <param name="iExpires">COOKIE对象有效时间(秒数),1表示永久有效,0和负数都表示不设有效时间,大于等于2表示具体有效秒数,31536000秒=1年=(60*60*24*365),</param>
            /// <param name="KeyValue">键/值对集合</param>
            public static void SetObj(string strCookieName, int iExpires, NameValueCollection KeyValue)
            {
                HttpCookie objCookie = new HttpCookie(strCookieName.Trim());
                foreach (String key in KeyValue.AllKeys)
                {
                    objCookie[key] = HttpContext.Current.Server.UrlEncode(KeyValue[key].Trim());
                }
                if (iExpires > 0)
                {
                    if (iExpires == 1)
                    {
                        objCookie.Expires = DateTime.MaxValue;
                    }
                    else
                    {
                        objCookie.Expires = DateTime.Now.AddSeconds(iExpires);
                    }
                }
                HttpContext.Current.Response.Cookies.Add(objCookie);
            }
      

  3.   

    cookie里存放都是string,除非你自己序列化反序列化。
      

  4.   


    /// <summary>
            /// 创建COOKIE对象并赋多个KEY键值
            /// 设键/值如下:
            /// NameValueCollection myCol = new NameValueCollection();
            /// myCol.Add("red", "rojo");
            /// myCol.Add("green", "verde");
            /// myCol.Add("blue", "azul");
            /// myCol.Add("red", "rouge");   结果“red:rojo,rouge;green:verde;blue:azul”
            /// </summary>
            /// <param name="strCookieName">COOKIE对象名</param>
            /// <param name="iExpires">COOKIE对象有效时间(秒数),1表示永久有效,0和负数都表示不设有效时间,大于等于2表示具体有效秒数,31536000秒=1年=(60*60*24*365),</param>
            /// <param name="KeyValue">键/值对集合</param>
            public static void SetObj(string strCookieName, int iExpires, NameValueCollection KeyValue)
            {
                HttpCookie objCookie = new HttpCookie(strCookieName.Trim());
                foreach (String key in KeyValue.AllKeys)
                {
                    objCookie[key] = HttpContext.Current.Server.UrlEncode(KeyValue[key].Trim());
                }
                if (iExpires > 0)
                {
                    if (iExpires == 1)
                    {
                        objCookie.Expires = DateTime.MaxValue;
                    }
                    else
                    {
                        objCookie.Expires = DateTime.Now.AddSeconds(iExpires);
                    }
                }
                HttpContext.Current.Response.Cookies.Add(objCookie);
            }