C# ASP.NET MVC:使用Cookie记住账号密码
MVC记住账号密码
使用cookie操作
前端:
<div>
用户名:<input type="text" id="UserName" value="@ViewBag.UserName"/>
</div>
<div>
密码:<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"/> 记住密码
</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记住账号密码的更多相关文章
- JavaWeb利用cookie记住账号
JavaWeb利用cookie记住账号. 首先,来看看界面什么样子. 记住账号最普遍的做法,就是在点击登录时,将账号保存到cookie中. 材料准备 <script src="${ct ...
- struts2的记住账号密码的登录设计
一个简单的基于struts2的登录功能,实现的额外功能有记住账号密码,登录错误提示.这里写上我在设计时的思路流程,希望大家能给点建设性的意见,帮助我改善设计. 登录功能的制作,首先将jsp界面搭建出来 ...
- 基于struts2的记住账号密码的登录设计
一个简单的基于struts2的登录功能,实现的额外功能有记住账号密码,登录错误提示.这里写上我在设计时的思路流程,希望大家能给点建设性的意见,帮助我改善设计. 登录功能的制作,首先将jsp界面搭建出来 ...
- Linux让git记住账号密码
Linux让git记住账号密码 ——IT唐伯虎 摘要: Linux让git记住账号密码. 1.进入根目录,指令:cd / 2.创建记录账号密码的文件,指令:touch .git-credentials ...
- 利用SharedPreferences完成记住账号密码的功能
利用SharedPreferences完成记住账号密码的功能 效果图: 记住密码后,再次登录就会出现账号密码,否则没有. 分析: SharedPreferences可将数据存储到本地的配置文件中 Sh ...
- css 修改placeholder字体颜色字体大小 修改input记住账号密码后的默认背景色
壹 ❀ 引 本来这个阶段的项目页面都是给实习生妹子做的,我只用写写功能接接数据,但这两天妹子要忙翻译,这个工作阶段也快结束了导致有点慌,只能自己把剩余的几个小页面给写了. 那么做页面的过程中,UI也 ...
- Git设置记住账号密码
Git设置记住账号密码 添加如下配置 [credential] helper = store
- cocos2d JS 本地缓存存储登陆记住账号密码->相当于C++中的UserDefault
在cocos-js 3.0以上的版本中,当我们用到本地存储的时候,发现以前用到的UserDefault在JS中并没有导出,而是换成了LocalStorage. 在LocalStorage.h文件中我们 ...
- cookie记住用户名密码
<script src="js/jquery.cookie.js" type="text/javascript"></script> $ ...
随机推荐
- Python_字符串的大小写变换
''' lower().upper().capitalize().title().swapcase() 这几个方法分别用来将字符串转换为小写.大写字符串.将字符串首字母变为大写.将每个首字母变为大写以 ...
- flock SUSE/RHEL
Util-linux-2.26 Util-linux 软件包其它实用程序.包括处理文件系统.控制台.分区以及消息等工具. 大概编译时间:1.3 SBU 需要磁盘空间:137 MB 6.65.1. FH ...
- Oracle-09:聚合函数
------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 数据库脚本放一下,供测试使用 create table DEPT ( deptno ) not null, d ...
- Centos7搭建hadoop完全分布式
虽然说是完全分布式,但三个节点也都是在一台机器上.拿来练手也只能这样咯,将就下.效果是一样滴.这个我自己都忘了步骤,一起来回顾下吧. 必备知识: Linux基本命令 vim基本命令 准备软件: VMw ...
- 安装nginx和php
安装nginx 1.安装依赖包 yum -y install gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel perl pe ...
- 第六章——决策树(Decision Trees)
决策树是强大的,多功能的机器学习算法. 6.1 训练和可视化一个决策树 在iris数据集训练DecisionTreeClassifier: from sklearn.datasets import l ...
- [OPEN CV] 常用视频操作方法
一.视频的定义 视频(Video)泛指将一系列静态影像以电信号的方式加以捕捉.纪录.处理.储存.传送与重现的各种技术.连续的图像变化每秒超过24帧(frame)画面以上时,根据视觉暂留原理,人眼无法辨 ...
- 关于Java泛型"擦除"的一点思考
头次写博客,想说的东西不难,关于泛型的疑问,是前一阵在学习jackson中遇到的. 下面就把我所想到的.遇到的,分享出来. 泛型是JDK1.5后的一个特性,是一个参数类型的应用,可以将这个参数声明在类 ...
- ASP.NET三剑客 HttpApplication HttpModule HttpHandler 解析
我们都知道,ASP.Net运行时环境中处理请求是通过一系列对象来完成的,包含HttpApplication,HttpModule, HttpHandler.之所以将这三个对象称之为ASP.NET三剑客 ...
- fixed 和 absolute 定位的区别
fixed:固定定位 absolute:绝对定位 在没有滚动条的情况下两者其实没有差异.但是在有滚动条后,fixed始终会在定好的位置不动,而absolute会随参照对象元素的宽高 ...