c#登录时保存账号密码到cookie
登陆界面有用户名、密码输入框,一个’记住账号密码‘的复选框。
1.登录时,勾选‘记住账号密码‘复选框,则会把用户名密码保存在客户端cookie里,保存时间为最大值(直到用户清除浏览器缓存或者取消勾选’记住账号密码‘复选框);
2.登录时,取消勾选‘记住账号密码‘复选框,会清除cookie保存的用户名密码。
3.登录时,当修改了用户名密码,会判断cookie保存的值是否与输入的相同,如果不同,则会修改cookie的值。
4.登录时,当勾选了‘记住账号密码‘复选框,下次打开登录界面,‘记住账号密码‘复选框初始化为选中状态(这样用户就明白用户名和密码已经保存在cookie中);否则,是未选中状态。(同QQ登录)
主要代码:
一、前端
html:
<body>
<form name="form1" method="post">
<label>用户名</label><input type="text" name="UserName" id="username" />
<label>密 码</label><input type="password" name="Password" id="userpass" />
<input type="button" onclick="f_Login()" name="sm1" class="login_btn" value="登录" />
<input id="rd" type="checkbox" name="rd_S" style="margin: 20px 0px 2px 20px" />
<label style="margin-top: 20px">记住账号密码</label>
</form>
</body>
</html>
js、jquery:
<script type="text/javascript">
var rootPath = '@Url.Content("~/Admin/")';
var username = '@ViewBag.UserName';
var password = '@ViewBag.UserPassWord'; $(document).ready(function () {
if (username != "") {
$("#username").attr("value", username);
$("#userpass").attr("value", password);
$("#rd").attr("checked", "checked"); //当cookie记录了账号密码,则初始化‘记住账号密码’复选框时为勾选状态
}
else {
$("#rd").removeAttr("checked");
}
}); @*登录*@
function f_Login() {
var IsSaveLoInfo; //标识是否记住账号密码
if ($("#rd").attr("checked")) {
IsSaveLoInfo = true;
}
LG.ajax({
url: '@Url.Content("~/Admin/Login/LoginAndRedirect")',
loading: '正在登陆中...',
data: { UserName: $("#username").val(), Password: $("#userpass").val(), IsSaveLoInfo: IsSaveLoInfo },
success: function (result) {
if (!result) {
LG.showError("登录失败,帐号或密码错误!");
return false;
}
location.href = "@Url.Content("~/Admin/Manage/Index")";
},
error: function (message) {
LG.showError(message);
}
});
}
</script>
二、后台:
[Description("加载登陆页面")]
public ActionResult UserLogin()
{
//获取cookie保存的账号密码
string UserNameCookie = CookieHelper.GetCookieValue("UserNameCookie");
string UserPasswordCookie = CookieHelper.GetCookieValue("UserPasswordCookie");
ViewBag.UserName = UserNameCookie;
ViewBag.UserPassWord = UserPasswordCookie;
return View("Login");
}
[Description("login登录,登录成功则跳转")]
public ActionResult LoginAndRedirect()
{
UserRequest request = new UserRequest(HttpContext);
bool IsSaveLoginInfo = Convert.ToBoolean(HttpContext.Request["IsSaveLoInfo"]); //是否保存登陆账号密码
string UserNameCookie = CookieHelper.GetCookieValue("UserNameCookie");
string UserPasswordCookie = CookieHelper.GetCookieValue("UserPasswordCookie");
//判断是否把登陆账号密码到cookie
if (IsSaveLoginInfo)
{
if(UserNameCookie != request.UserName )//当输入的用户名与cookie保存的不同,修改cookie的
CookieHelper.SetCookie("UserNameCookie", request.UserName, DateTime.MaxValue);
if(UserPasswordCookie != request.Password)
CookieHelper.SetCookie("UserPasswordCookie", request.Password, DateTime.MaxValue);
}
else
{
CookieHelper.ClearCookie("UserNameCookie");
CookieHelper.ClearCookie("UserNameCookie");
}
………其他处理代码………
}
CookieHelper类:
/// <summary>
/// Cookie类
/// </summary>
public class CookieHelper
{
/// <summary>
/// 清除指定Cookie
/// </summary>
/// <param name="cookiename">cookiename</param>
public static void ClearCookie(string cookiename)
{
HttpCookie cookie = HttpContext.Current.Request.Cookies[cookiename];
if (cookie != null)
{
cookie.Expires = DateTime.Now.AddYears(-);
HttpContext.Current.Response.Cookies.Add(cookie);
}
} /// <summary>
/// 获取指定Cookie值
/// </summary>
/// <param name="cookiename">cookiename</param>
/// <returns></returns>
public static string GetCookieValue(string cookiename)
{
HttpCookie cookie = HttpContext.Current.Request.Cookies[cookiename];
string cookievalue = string.Empty;
if (cookie != null)
{
cookievalue = cookie.Value;
}
return cookievalue ;
} /// <summary>
/// 添加一个Cookie
/// </summary>
/// <param name="cookiename">cookie名</param>
/// <param name="cookievalue">cookie值</param>
/// <param name="expires">过期时间 DateTime</param>
public static void SetCookie(string cookiename, string cookievalue, DateTime expires)
{
HttpCookie cookie = new HttpCookie(cookiename)
{
Value = cookievalue,
Expires = expires
};
HttpContext.Current.Response.Cookies.Add(cookie);
}
}
c#登录时保存账号密码到cookie的更多相关文章
- 在某网站的登录页面登录时如果选择“记住用户名”,登录成功后会跳转到一个中间层(页面代码将登录的用户名和密码存在cookie),中间页面中存在一个超链接,单击超链接可以链接到第三个页面查看信息。若选择“
Response实现登录并记录用户名和密码信息 在某网站的登录页面登录时如果选择"记住用户名",登录成功后会跳转到一个中间层(页面代码将登录的用户名和密码存在cookie),中间页 ...
- display的none与block(判断登录界面的账号密码是否为空)
判断登录界面的账号密码是否为空的时候又不想用alert显示就需要用display来隐藏alert啦(在设置时切忌要将隐藏的内容写在账号和密码的div中,否则会根据屏幕的分辨率不同而有所变化,这是本人教 ...
- 修改官方发行openstack镜像的cloud-init登录方式为账号密码登录
openstack使用的镜像多为qcow2格式,各个发行商也开源了针对openstack制作的镜像.但是这些镜像的登录方式都是注入用户名和密码的方式,就是说不能够直接通过账号和密码登录.那么如何将一个 ...
- localStorage保存账号密码
首先是判断浏览器是否支持这一属性,他是HTML5里的属性: if(window.localStorage){ alert('支持');}else{ alert('不支持');} localStorag ...
- git 本地保存账号密码
用ssh连接的项目都不用输账号密码 如果https的话 每次都用输入账号密码 很繁琐 解决方法,在本地的工程文件夹的.git下打开config文件添加: [credential] he ...
- TortoiseGit 保存账号密码
TortoiseGit下载网址:http://download.tortoisegit.org/tgit/ 修改.gitconfig .gitconfig 用于记录git配置信息 路径:系统盘:\Us ...
- git永久保存账号密码,免去git重复输入账号密码操作
这是我刚刚遇到的问题,每次操git操作都要输入用户名和密码,网上百度了下搜到了方法解决了 方法一:(快捷简单) 直接在git bash 中执行命令:git config --global creden ...
- TFS登录时保存了用户密码,如何用其他账户登录
来源:http://blog.csdn.net/littlegreenfrog/article/details/5254633 使用TFS2008过程中,常常由于已经保存用户名和密码,却没有重新登 ...
- iOS - 记住用户登录状态保存用户名密码
我们在使用APP时常用的一个功能:用户第一次进入APP时自动进入登录注册页,提示用户注册登录,用户登录成功后才进入主页,再次进入APP时,不用再次登录就直接进到主页了,就算杀掉该APP进程再次进入,依 ...
随机推荐
- html 块状元素 行内元素 内联元素
块状(Block)类型的元素的width默认为100%,而行内(Inline)类型的元素则是根据自身的内容及子元素来决定宽度. 块元素(block element) address - 地址 bloc ...
- 学习笔记 一步步了解webpack
前言 demo 地址: https://github.com/yy8597/webpack-demos 之前学习了 broswerify,发现确实很好用.虽然没有 grunt 那样丰富的配置和插件,但 ...
- SQL SERVER 内存分配及常见内存问题(2)——DMV查询
原文:SQL SERVER 内存分配及常见内存问题(2)--DMV查询 内存动态管理视图(DMV): 从sys.dm_os_memory_clerks开始. SELECT [type] , SUM(v ...
- CodeForces 277A Learning Languages (并检查集合)
A. Learning Languages time limit per test:2 seconds memory limit per test:256 megabytes The "Be ...
- [ACM] POJ 2418 Hardwood Species (Trie树或map)
Hardwood Species Time Limit: 10000MS Memory Limit: 65536K Total Submissions: 17986 Accepted: 713 ...
- C文件IO
ANSI C标准差点儿被全部的操作系统支持,ANSI C标准提供了完好的I/O函数,使用这些I/O操作我们能够控制程序的输入输出.读写系统磁盘文件.本文记录了用户进程I/O缓冲介绍.文件的读写.文件定 ...
- Linux访问Windows共享文件夹 (转)
在开发Linux程序中,经常会使用Windows的编辑器进行编辑,这样还要拷贝到Linux服务器,如果有这种开发习惯的同学,可以使用这种方式进行开发. 当然除了这种方法之外,可以再Windows安装n ...
- 允许Android随着屏幕转动的控制自由转移到任何地方(附demo)
在本文中,Android ViewGroup/View流程,及经常使用的自己定义ViewGroup的方法.在此基础上介绍动态控制View的位置的三种方法,并给出最佳的一种方法. 一.ViewGroup ...
- Java变量参数
Java1.5添加新功能:可变参数:它适用于参数不确定性的数量,判断形势的类型.java变量参数数组操作. 特点: 1.今天的参数列表只能持续. 2.省略号(...)位于变量类型和变量名之间,前后有无 ...
- (两)unity4.6Ugui中国教程文档-------总结-UGUI Canvas
大家好,我是广东太阳. 转载请注明出处:http://write.blog.csdn.net/postedit/38922399 更全的内容请看我的游戏蛮牛地址:http://www.unitym ...