博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C# ASP.NET MVC:使用Cookie记住账号密码
阅读量:5316 次
发布时间:2019-06-14

本文共 3681 字,大约阅读时间需要 12 分钟。

MVC记住账号密码

使用cookie操作

前端:

1 
2 用户名:
3
4
5    密码:
6
7
8
 记住密码 9
10
11
12

JS代码:

通过AJAX 传输数据 我们不仅要传输账号和密码 还有传复选框的状态(参数CK)

1 function btnRegister() 2     { 3         $.get("/Login/UsersLogin", { Name: $("#UserName").val(), Password: $("#UserPwd").val(), Ck: $("#single").prop('checked') }, function (data, Status) { 4             if(Status="success") 5             { 6                 if (data > 0) 7                 { 8                     alert('登录成功'); 9                     window.location.href = "/OilDrum/Index";10                 }11                 else {12                     alert('用户名或密码错误');13                 }14             }15         })16     }

 

 

 

在登录的方法中:

CK参数就是复选框的状态true或false

首先判断数据库中是否存在账号密码

之后判断复选框是否选中

选中: 创建一个cookie对象

在cookie对象中保存用户名和密码,并设置cookie的过期时间,保存到客户端中去

未选中:创建一个cookie对象

判断cookie对象中是否空值,存在值的情况下,设置过期时间为-1,因为我们复选框为false没有选中,所以我们要把过期的时间设置为之前的时间,这样Cookie就会空值,保存到客户端中

 注意:

在将密码存入到cookie中,可能不大安全,因为cookie以文本的形式存放在客户端中,这将会使我们的密码暴露出来,

我们可以在密码存储到cookie中的时候,对密码进行加密,如(MD5密码加密等....)

1 public int UsersLogin(LoginModel loginModel,bool Ck) 2         { 3             try 4             { 5                 List
enumerable = new List
(); 6 int nn = 0; 7 using (IDbConnection con = new SqlConnection(connecString)) 8 { 9 nn =(int) con.ExecuteScalar("select COUNT(1) from Users where Name=@Name and Password=@Password", new { Name = loginModel.Name, Password = loginModel.Password });10 }11 if (nn > 0)12 {13 //判断是否记住密码14 if(Ck)15 {16 HttpCookie hc = new HttpCookie("Example");17 18 //在cookie对象中保存用户名和密码19 hc["UserName"] = loginModel.Name;20 hc["UserPwd"] = loginModel.Password;21 //设置过期时间22 hc.Expires = DateTime.Now.AddDays(2);23 //保存到客户端24 Response.Cookies.Add(hc);25 }26 else27 {28 HttpCookie hc = new HttpCookie("Example");29 //判断hc是否空值30 if(hc!=null)31 {32 //设置过期时间33 hc.Expires = DateTime.Now.AddDays(-1);34 //保存到客户端35 Response.Cookies.Add(hc);36 }37 38 }39 return 1;40 }41 else42 {43 return 0;44 }45 }46 catch (Exception e)47 {48 49 throw;50 }51 }

 

在控制器中的视图方法中:

获取UsersLogin方法中创建的cookie对象Example是否存在数据

有值:赋值给对应的文本框

空值:直接返回视图

public ActionResult Index()        {            //获取cookie中的数据            HttpCookie cookie = Request.Cookies.Get("Example");            //判断cookie是否空值            if(cookie!=null)            {                //把保存的用户名和密码赋值给对应的文本框                //用户名                var name = cookie.Values["UserName"].ToString();                ViewBag.UserName = name;                //密码                var pwd = cookie.Values["UserPwd"].ToString(); ViewBag.UserPwd = pwd; } return View(); }

 

转载于:https://www.cnblogs.com/Hmd528/p/10695156.html

你可能感兴趣的文章
Mircosoft 正式把Windows Mobile改名为Windows Phone,你会因此而购买Windows Phone吗?
查看>>
linux系统下nginx安装目录和nginx.conf配置文件目录
查看>>
Maven打包小技巧--持续更新
查看>>
ReactNative 触摸事件处理
查看>>
在 MongoDB 上模拟事务操作来实现支付
查看>>
2016 10 26考试 NOIP模拟赛 杂题
查看>>
C++迭代器
查看>>
web框架之Django(一)
查看>>
mysql optimization
查看>>
Leetcode#832. Flipping an Image(翻转图像)
查看>>
正则表达式学习手册
查看>>
点分治题表
查看>>
webpack常用配置
查看>>
ajax 页面无刷新
查看>>
perl学习笔记——目录操作
查看>>
好未来提前批
查看>>
LeetCode 581. 最短无序连续子数组(Shortest Unsorted Continuous Subarray)
查看>>
hihocoder 1689 - 推断大小关系(图论+二分)
查看>>
暑假个人小结
查看>>
VS2017生成一个简单的DLL文件 和 LIB文件——C语言
查看>>