欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Asp.Net MVC记住用户登录信息 下次登录无需输入密码

程序员文章站 2023-08-13 18:13:16
有的时候做网站,就需要记住用户登录信息,下次再登录网站时,不用重复输入用户名和密码,原理是浏览器的cookie把状态给记住了! 那么具体是怎么实现的呢?下面博主将一部分代码贴出来,想要完整版的Demo可以到百度云和码云下载, 百度云下载链接:https://pan.baidu.com/s/1rfQN ......

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

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

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

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

 咱们先来看看效果图:

Asp.Net MVC记住用户登录信息  下次登录无需输入密码

 

下面是添加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的请去文章开头给的链接下载   祝大家早日成为大牛   成为一个自己仰慕的人!