文献种类:专题技术文献;
开发工具与关键技术:C# MVC
作者: 汤池 ;年级:2004 ;撰写时间: 2021 年 5 月 18 日
文献编号: 归档时间: 年 月 日
开发工具与关键技术: MVC
作者:汤池
撰写时间:2021/5/18
账号密码记住我操作
![在这里插入图片描述](https://img-blog.csdnimg.cn/2021051708134877.png#pic_center)
首先我们要用到type为checkbox 的input标签
声明一个变量 =$("父标签 [name='RememberMe']").prop("checked"); 来监听Ture 或False
在视图勾选记住之后应该发送的是Ture,后台控制器
在判断账号密码输入正确之后需要再加上一个判断
If( 这个变量的值==ture){
我们需要用到HttpCookie cookie 来储存账号和密码,
先用new创建一个新的HttpCookie cookie
HttpCookie cookie =new HttpCookie("user")
这里我将cookie的名字设置为user
创建好了之后需要将需要储存的数据放入cookie中
cookie["A"] =A;
cookie["B"] =B;
设置值后再去设置cookie的存储时间
cookie.Expires =DataTime.Now.AddDays(7);
Cookie的有效期 为 现在时间加上7天 ;
最后把创建的cookie 放入Cookies中
Response.Cookies.Add(cookie);
}
除了勾选记住我,还有不勾选记住我这种情况,我们就需要重新设置cookie
else{
HttpCookie cookie =new HttpCookie("user")
将cookie的名字设置为user,同记住我的Cookie的名字相同
不勾选记住我时,不需要往user里面添加数据
只需要重新设置一下Cookie的有效日期
Cookie.Expires =DataTime.Now.AddDays(-1)
Cookie的有效期为-1天,等同于设置为无效
Response.Cookie.Add(cookie);
最后把无效的cookie覆盖或添加到Cookies中去
}
完整代码为
if (RememberMe == "True")
{
HttpCookie cookie = new HttpCookie("user");
cookie["A"] = A;
cookie["B"] = B;
cookie.Expires = DateTime.Now.AddDays(7);
Response.Cookies.Add(cookie);
}
else
{
HttpCookie cookie = new HttpCookie("user");
cookie.Expires = DateTime.Now.AddDays(-1);
Response.Cookies.Add(cookie);
}
设置好后 再去找到需要绑定账号密码的视图控制器,在控制器内声明
string A = ""; string B = ""; bool RememberMe = false;
HttpCookie cookie = System.Web.HttpContext.Current.Request.Cookies["user"];
从系统网页查找名为user的cookie 赋值给HttpCookie cookie 里面
第一步需要判断该cookie是否为null,如果为null的话后面的步骤就不需要继续执行了
If(cookie!=null){
RememberMe =true
如果为不为空那么说明用户在之前勾选了记住我,所以 记住我的值为true
然后在一个个判断cookie["A"]或者cookie["B"]是否为空,如果不为空,则从cookie里面查找该数据并赋值
if (cookie["A"] !="") {
A = System.Web.HttpContext.Current.Server.UrlDecode(cookie["A"]);
}
if (cookie["B"] != "") {
B = System.Web.HttpContext.Current.Server.UrlDecode(cookie["B"]);
}
}
把接收到的值给与页面 ,我用的是 ViewBage 来传输数据
ViewBag.A= A;
ViewBag.B= B;
ViewBag.RememberMe = RememberMe;
return View();
最后转到输入账号密码的视图内 , 将账号 或 密码 的 value值设置成
@ViewBag.A @ViewBag.B
记住我的值也一样 @ViewBag.RememberMe
这样就能实现勾选 记住我 后面再次登录能够自动填写已经输入过且成功登录的账号密码
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210517081420954.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1RhbmdDaGkxOTcw,size_16,color_FFFFFF,t_70#pic_center)