25yicms利用ASP.NET(C#)+MSSQL技术全力打造功能最强大的营销型企业网站管理系统,企业做网站系统,做网站软件,提供div+css企业网站模板。
阅读内容

C#(asp.net)对Cookie的使用详解


时间:2010/02/08   来源:25亿

        Cookie可以临时存储数据,并且在网站各页面间进行传递。由于Cookie是存在于客户端,这样对于客户的一些信息如果存储在Cookie中就会不安全,所以一般都是存储用户在特定网站上的ID,以使ID在各页面间进行传递。

        以25亿企业网站管理系统中的源码作为实例深刻讲解用C#(asp.net)对Cookie的使用。

        我们以25亿企业网站管理系统中对用户登陆后,用Cookie来存储用户的ID为例。首先用js获取用户所输入的用户名和密码,通过异步传输来调用C#验证用户登陆信息函数。

        #region  验证用户登陆
        /// <summary>
        ///  验证用户登陆
        /// </summary>
        /// <param name="Type">类型</param>
        /// <param name="ReMark">自定义条件参数</param>
        /// <param name="pageindex">当前页码</param>
        /// <param name="pagesize">当前页显示条数</param>
        [AjaxPro.AjaxMethod]
        public string GetModUserInfo(int Type, string ReMark, int pageindex, int pagesize,string language)
        {
            string num = "0";
            DataTable dt = new DAL.InTable().GetMod(Type, ReMark, pageindex, pagesize, language);
            if (dt.Rows.Count > 0)//验证数据库中是否存在于与之相匹配的用户名
            {
                num = dt.Rows.Count.ToString().Trim();
                HttpContext.Current.Response.AppendCookie(new Company.COMM.SetCookie().selSetCookie("htpUserId", "valUserId", dt.Rows[0]["UserInfoId"].ToString().Trim(), 60)); //用户ID存储于Cookie当中
            }
            return num;
        }
        #endregion  验证用户登陆

C#中对Cookie的操纵代码封装于Company.COMM公共层中,文件名为SetCookie.cs,封装代码如下:
        #region 设置带选择参数Cookies的值和时间,返回HttpCookie类型,用于保存一系列的值
        /// <summary>
        /// 设置带选择参数Cookies的值和时间,返回HttpCookie类型,用于保存一系列的值
        /// </summary>
        /// <param name="name">Cookies的名字</param>
        /// <param name="val">Cookies的值</param>
        /// <param name="date">Cookies的会话时间</param>
        /// <returns></returns>
        public HttpCookie selSetCookie(string htpName, string name, string val, int date)
        {
            DateTime dt = DateTime.Now;
            HttpCookie htp = new HttpCookie(htpName);
            htp.Values.Add(name, val);
            // htp.Values.Add("time", dt.ToString());
            //htp.Expires = dt.AddMinutes(date);
            return htp;
        }
        #endregion


        #region 设置带选择参数Cookies的值和时间,返回HttpCookie类型,用于保存一系列的值
        /// <summary>
        /// 设置带选择参数Cookies的值和时间,返回HttpCookie类型,用于保存一系列的值
        /// </summary>
        /// <param name="name">Cookies的名字</param>
        /// <param name="val">Cookies的值</param>
        /// <param name="date">Cookies的会话时间</param>
        /// <returns></returns>
        public HttpCookie selSetCookie2(string htpName, string name, string val, int date)
        {
            DateTime dt = DateTime.Now;
            HttpCookie htp = new HttpCookie(htpName);
            htp.Values.Add(name, val);
            htp.Values.Add("time", dt.ToString());
           htp.Expires = dt.AddMinutes(date);
            return htp;
        }
        #endregion

        #region 接受带选择参数Cookies的值
        /// <summary>
        /// 接受带选择参数Cookies的值
        /// </summary>
        /// <param name="req">Cookies对象</param>
        /// <param name="name">接受Cookies的名字</param>
        /// <returns>sring值</returns>
        public string selGetCookies(HttpCookie req, string name)
        {
            string result = "";
            if (req != null)
            {
                HttpCookie htp = req;
                result = htp.Values[name].ToString();
            }
            return result;
        }
        #endregion
    }

        对Cookie进行获取,读取代码就是: string UserInfoId = new Company.COMM.SetCookie().selGetCookies(HttpContext.Current.Request.Cookies["htpUserId"], "valUserId").ToString().Trim();

       C#(asp.net)对Cookie的使用详解完成,表达非常简单,需要深刻体会,请研究25亿企业网站管理系统源码。
作者: 企业网站管理系统
原载: 25亿企业网站管理系统
版权所有。转载时必须以链接形式注明作者和原始出处及本声明。

点击次数:       打印此页  关闭