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> $ ...
随机推荐
- Sublime中文编码问题
1. 改配置 Preferences->Settings 三个全部加上 "default_encoding": "UTF-8" 2. 代码编写 2.1 ...
- Python_文件与文件夹操作
''' os模块除了提供使用操作系统功能和访问文件系统的简便方法之外,还提供了大量文件与文件夹操作的方法. os.path模块提供了大量用于路径判断.切分.连接以及文件夹遍历的方法. shutil模块 ...
- Vue初学跳坑
1. uncaught TypeError: Cannot read property '0' of undefined <div class="home-module-wrap&qu ...
- C/C++ 数据结构之算法
数据结构中的排序算法. 排序算法的相关知识: (1)排序的概念:所谓排序就是要整理文件中的记录,使之按关键字递增(或递减)次序排列起来. (2)稳定的排序方法:在待排序的文件中,若存在多个关键字相同的 ...
- Pat1071: Speech Patterns
1071. Speech Patterns (25) 时间限制 300 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 HOU, Qiming Peo ...
- netty的编解码器理解(转)
一.简介 在网络应用中需要实现某种编解码器,将原始字节数据与自定义的消息对象进行互相转换.网络中都是以字节码的数据形式来传输数据的,服务器编码数据后发送到客户端,客户端需要对数据进行解码. 编解码器由 ...
- py文件转换为exe文件
遇到这个问题时在网上找了一会资料,很多博客的方法很旧了,介绍一种最简单的,pyinstaller. 时间比较早的资料还在介绍如何安装pip(python的包管理器),其实python中已经自带pip了 ...
- linux,windows下检测指定的IP地址是否可用或者检测IP地址冲突的3种方式(批处理程序,python程序,linux shell 批量ping)
本文中的脚本适用范围: 1)检测某些IP地址是否被占用: 2)检测网络中某些设备是否存活: 3)在分配新的ip地址之前,批量检测环境中是否存在冲突的机器 以上检测基于ICMP Ping报文,要求所有的 ...
- OAthe2 Login use OkHttpClient and OAuth2RestTemplate
http://samchu.logdown.com/posts/1437422-oathe2-login-use-okhttpclient-and-oauth2resttemplate?utm_sou ...
- datetime日期和时间
datetime是Python处理日期和时间的标准库. from datetime import datetime # 获取当前时间 now = datetime.now() print(now) # ...