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. Sublime中文编码问题

    1. 改配置 Preferences->Settings  三个全部加上 "default_encoding": "UTF-8" 2. 代码编写 2.1 ...

  2. Python_文件与文件夹操作

    ''' os模块除了提供使用操作系统功能和访问文件系统的简便方法之外,还提供了大量文件与文件夹操作的方法. os.path模块提供了大量用于路径判断.切分.连接以及文件夹遍历的方法. shutil模块 ...

  3. Vue初学跳坑

    1. uncaught TypeError: Cannot read property '0' of undefined <div class="home-module-wrap&qu ...

  4. C/C++ 数据结构之算法

    数据结构中的排序算法. 排序算法的相关知识: (1)排序的概念:所谓排序就是要整理文件中的记录,使之按关键字递增(或递减)次序排列起来. (2)稳定的排序方法:在待排序的文件中,若存在多个关键字相同的 ...

  5. Pat1071: Speech Patterns

    1071. Speech Patterns (25) 时间限制 300 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 HOU, Qiming Peo ...

  6. netty的编解码器理解(转)

    一.简介 在网络应用中需要实现某种编解码器,将原始字节数据与自定义的消息对象进行互相转换.网络中都是以字节码的数据形式来传输数据的,服务器编码数据后发送到客户端,客户端需要对数据进行解码. 编解码器由 ...

  7. py文件转换为exe文件

    遇到这个问题时在网上找了一会资料,很多博客的方法很旧了,介绍一种最简单的,pyinstaller. 时间比较早的资料还在介绍如何安装pip(python的包管理器),其实python中已经自带pip了 ...

  8. linux,windows下检测指定的IP地址是否可用或者检测IP地址冲突的3种方式(批处理程序,python程序,linux shell 批量ping)

    本文中的脚本适用范围: 1)检测某些IP地址是否被占用: 2)检测网络中某些设备是否存活: 3)在分配新的ip地址之前,批量检测环境中是否存在冲突的机器 以上检测基于ICMP Ping报文,要求所有的 ...

  9. OAthe2 Login use OkHttpClient and OAuth2RestTemplate

    http://samchu.logdown.com/posts/1437422-oathe2-login-use-okhttpclient-and-oauth2resttemplate?utm_sou ...

  10. datetime日期和时间

    datetime是Python处理日期和时间的标准库. from datetime import datetime # 获取当前时间 now = datetime.now() print(now) # ...