MVC记住账号密码

使用cookie操作

前端:

 <div>
用户名:<input type="text" id="UserName" value="@ViewBag.UserName"/>
</div>
<div>
&nbsp;&nbsp;&nbsp;密码:<input type="text" id="UserPwd" value="@ViewBag.UserPwd" style="margin-top:10px"/>
</div>
<div>
<input type="checkbox" id="single" checked="checked" style="margin-left:50px;margin-top:10px"/>&nbsp;记住密码
</div>
<div>
<input type="button" value="登录" onclick="btnRegister()" style="margin-left:100px;margin-top:10px"/>
</div>

JS代码:

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

 function btnRegister()
{
$.get("/Login/UsersLogin", { Name: $("#UserName").val(), Password: $("#UserPwd").val(), Ck: $("#single").prop('checked') }, function (data, Status) {
if(Status="success")
{
if (data > )
{
alert('登录成功');
window.location.href = "/OilDrum/Index";
}
else {
alert('用户名或密码错误');
}
}
})
}

在登录的方法中:

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

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

之后判断复选框是否选中

选中: 创建一个cookie对象

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

未选中:创建一个cookie对象

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

 注意:

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

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

 public int UsersLogin(LoginModel loginModel,bool Ck)
{
try
{
List<LoginModel> enumerable = new List<LoginModel>();
int nn = ;
using (IDbConnection con = new SqlConnection(connecString))
{
nn =(int) con.ExecuteScalar("select COUNT(1) from Users where Name=@Name and Password=@Password", new { Name = loginModel.Name, Password = loginModel.Password });
}
if (nn > )
{
//判断是否记住密码
if(Ck)
{
HttpCookie hc = new HttpCookie("Example"); //在cookie对象中保存用户名和密码
hc["UserName"] = loginModel.Name;
hc["UserPwd"] = loginModel.Password;
//设置过期时间
hc.Expires = DateTime.Now.AddDays();
//保存到客户端
Response.Cookies.Add(hc);
}
else
{
HttpCookie hc = new HttpCookie("Example");
//判断hc是否空值
if(hc!=null)
{
//设置过期时间
hc.Expires = DateTime.Now.AddDays(-);
//保存到客户端
Response.Cookies.Add(hc);
} }
return ;
}
else
{
return ;
}
}
catch (Exception e)
{ throw;
}
}

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

获取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();
}

C# ASP.NET MVC:使用Cookie记住账号密码的更多相关文章

  1. JavaWeb利用cookie记住账号

    JavaWeb利用cookie记住账号. 首先,来看看界面什么样子. 记住账号最普遍的做法,就是在点击登录时,将账号保存到cookie中. 材料准备 <script src="${ct ...

  2. struts2的记住账号密码的登录设计

    一个简单的基于struts2的登录功能,实现的额外功能有记住账号密码,登录错误提示.这里写上我在设计时的思路流程,希望大家能给点建设性的意见,帮助我改善设计. 登录功能的制作,首先将jsp界面搭建出来 ...

  3. 基于struts2的记住账号密码的登录设计

    一个简单的基于struts2的登录功能,实现的额外功能有记住账号密码,登录错误提示.这里写上我在设计时的思路流程,希望大家能给点建设性的意见,帮助我改善设计. 登录功能的制作,首先将jsp界面搭建出来 ...

  4. Linux让git记住账号密码

    Linux让git记住账号密码 ——IT唐伯虎 摘要: Linux让git记住账号密码. 1.进入根目录,指令:cd / 2.创建记录账号密码的文件,指令:touch .git-credentials ...

  5. 利用SharedPreferences完成记住账号密码的功能

    利用SharedPreferences完成记住账号密码的功能 效果图: 记住密码后,再次登录就会出现账号密码,否则没有. 分析: SharedPreferences可将数据存储到本地的配置文件中 Sh ...

  6. css 修改placeholder字体颜色字体大小 修改input记住账号密码后的默认背景色

     壹 ❀ 引 本来这个阶段的项目页面都是给实习生妹子做的,我只用写写功能接接数据,但这两天妹子要忙翻译,这个工作阶段也快结束了导致有点慌,只能自己把剩余的几个小页面给写了. 那么做页面的过程中,UI也 ...

  7. Git设置记住账号密码

    Git设置记住账号密码 添加如下配置 [credential] helper = store

  8. cocos2d JS 本地缓存存储登陆记住账号密码->相当于C++中的UserDefault

    在cocos-js 3.0以上的版本中,当我们用到本地存储的时候,发现以前用到的UserDefault在JS中并没有导出,而是换成了LocalStorage. 在LocalStorage.h文件中我们 ...

  9. cookie记住用户名密码

    <script src="js/jquery.cookie.js" type="text/javascript"></script> $ ...

随机推荐

  1. 双网卡+mitmproxy+iptables搭建SSL中间人(支持非HTTPS协议)

    "想要解决一个问题,最根本方法的就是了解这一切是如何工作的,而不是玄学." --ASCII0X03 最近学习发现现在很多现成的安卓SSL中间人工具和教程都只针对HTTPS流量,比如 ...

  2. 嵌入Python | 调用Python模块中有参数的函数

    开发环境Python版本:3.6.4 (32-bit)编辑器:Visual Studio CodeC++环境:Visual Studio 2013 需求说明前一篇<在C++中嵌入Python|调 ...

  3. Masonry 抗压缩 抗拉伸

    约束优先级: 在Autolayout中每个约束都有一个优先级, 优先级的范围是1 ~ 1000.创建一个约束,默认的优先级是最高的1000 Content Hugging Priority: 该优先级 ...

  4. Unity3D学习(三):利用NGUI实现一个简单的左右摇杆

    前言 小游戏Konster在测试的时候有热心玩家反馈左右移动手感不是很好,最主要的问题是:手指一旦按在手机屏幕的一个方向按钮上,向反方向滑动到另一个方向按钮上是不会改变玩家移动方向的. 具体如下图: ...

  5. cmd登录远程Oracle数据库

    在cmd中输入  user/password@Ip:port/sid    例如:  laoda/123@192.168.4.161:1521/orcl      laoda是用户名,123是密码.

  6. ORALCE删除临时表空间的方法---解决ORA01033: oralce initialization or shutdown in progress方案

    当一台主机上oralce 临时表空间太多,而又用不到这些临时表空间的时候,    TABLESPACE 会占用大量的存储空间.本文介绍一种删除ORACLE 临时表空间的方法. 一 启动任务管理器.在任 ...

  7. Creating your own auto-configuration

    44. Creating your own auto-configuration If you work in a company that develops shared libraries, or ...

  8. UsernamePasswordAuthenticationToken

    UsernamePasswordAuthenticationToken继承AbstractAuthenticationToken实现Authentication所以当在页面中输入用户名和密码之后首先会 ...

  9. valueOf函数详解

    在类型转换中,经常用到方法valueOf()和他toString(),所有对象(包括基本包装类型)都拥有这两个方法.这篇文章我们先看看valueOf()方法.valueOf()方法会将对象转换为基本类 ...

  10. Android 框架炼成 教你如何写组件间通信框架EventBus

    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/41096639 ,本文出自:[张鸿洋的博客] 1.概述 关于Eventbus的介绍 ...