Joy的遗迹

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理
  2 Posts :: 0 Stories :: 0 Comments :: 0 Trackbacks

公告

有的时候做网站,就需要记住用户登录信息,下次再登录网站时,不用重复输入用户名和密码,原理是浏览器的cookie把状态给记住了!

那么具体是怎么实现的呢?下面博主将一部分代码贴出来,想要完整版的Demo可以到百度云和码云下载,

百度云下载链接:https://pan.baidu.com/s/1rfQNxpM8WGxkBbdiS1mLeQ    密码:if1q

马云下载链接:https://gitee.com/WuFengZui/RememberLoginDemo      【没有下载链接的都是耍流氓  哈哈!!

 咱们先来看看效果图:

 

下面是添加Cookie的代码,不过这个方法是我封装过的,方法中的具体操作可以查看第二段代码

            //创建Cookie【防止登录信息泄露,这里使用Encode()将信息进行了加密】
                SqlHelper.SetCookie("NameCookie", SqlHelper.Encode(UserName), DateTime.Now.AddDays(7));
                SqlHelper.SetCookie("PwdCookie", SqlHelper.Encode(Pwd), DateTime.Now.AddDays(7));


            //获取Cookie
                string name = SqlHelper.GetCookieValue("NameCookie");
                string pwd = SqlHelper.GetCookieValue("PwdCookie");


            //删除Cookie
            SqlHelper.RemoveCookie("NameCookie");
            SqlHelper.RemoveCookie("PwdCookie");        

 

封装添加Cookie方法

     /// <summary>
        /// 设置Cookie值和过期时间
        /// </summary>
        /// <param name="cookieName">Cookie名称</param>
        /// <param name="value"></param>
        /// <param name="expires">过期时间</param>
        public static void SetCookie(string cookieName, string value, DateTime expires)
        {
            HttpCookie cookie = HttpContext.Current.Request.Cookies[cookieName];
            if (cookie != null)
            {
                cookie.Value = value;
                cookie.Expires = expires;
                HttpContext.Current.Response.Cookies.Add(cookie);
            }
            else
            {
                cookie = new HttpCookie(cookieName);
                cookie.Value = value;
                cookie.Expires = expires;
                HttpContext.Current.Response.Cookies.Add(cookie);
            }
        }

 封装获取Cookie方法

     /// <summary>
        /// 获得Cookie的值
        /// </summary>
        /// <param name="cookieName">Cookie名称</param>
        /// <returns></returns>
        public static string GetCookieValue(string cookieName)
        {
            HttpCookie cookie = HttpContext.Current.Request.Cookies[cookieName];
            if (cookie == null)
                return "";
            else
                return cookie.Value;
        }

封装删除Cookie方法

     /// <summary>
        /// 删除Cookie的值
        /// </summary>
        /// <param name="cookieName">Cookie名称</param>
        /// <returns></returns>
        public static void RemoveCookie(string cookieName)
        {
            SetCookie(cookieName, "", DateTime.Now.AddDays(1));
        }

好了  上面是用到的主要代码   有需要完整Demo的请去文章开头给的链接下载   祝大家早日成为大牛   成为一个自己仰慕的人!

posted on 2018-09-12 12:55 Joy的遗迹 阅读(...) 评论(...) 编辑 收藏