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进程再次进入,依 ...
随机推荐
- 微信oauth获取用户的信息页面授权
參考链接(请在微信client中打开此链接体验) Scope为snsapi_base https://open.weixin.qq.com/connect/oauth2/authorize?appid ...
- 导出文本pdf文件
出口手续往往是一些数据需求,学习文本导出到今天pdf文件.主要用于QPrinter,QPainter TextEditToPdf::TextEditToPdf(QWidget *parent, Qt: ...
- Python 实现类似PHP的strip_tags功能,并能够定义他们自己的一套保留标记
最近的研究 Python ,发现还是很习惯使用,多PHP这是非常easy该功能Python 这不得不找了半天,而且非常灵活不得不实现自己的. 我们今天聚集,需要过滤的内容标签,搞一个PM.外形似终于想 ...
- Java在的时候,类定义HashSet初始化方法
Java非常多的时间,应使用HashSet搜索功能,类的则定义,是HashSet类型的,我们定义数据成员之后,不好直接调用add函数来实现初始化,这个时候怎么办? 我们能够这样来做: public s ...
- 手游client思考框架
手游新公司新项目client我不太同意框架.虽然我也终于让步,当他居然问老板,使这个幼稚的行为而悔恨. 然而,就在最近我写了一些代码视图,我更坚定了自己的想法和思想.和思路不一定适合其它人,所以我并不 ...
- UVA315- Network(无向图割点)
题目链接 题意: 给出一张无向图,求割点的个数 思路:非常裸的题目.直接套用模版就可以. 代码: #include <iostream> #include <cstdio> # ...
- git 如何让单个文件回退到指定的版本
1.进入到文件所在文件目录,或者能找到文件的路径查看文件的修改记录 1 $ git log MainActivity.java 结果: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ...
- linux文章(11)---umask和chmod
一.用途 文将介绍linux环境下有关文件訪问模式相关的命令. umask用来设置默认的文件訪问模式屏蔽值:chmod用来改动文件的訪问模式. 本文将选取ubuntu1 ...
- Linq的Distinct太不给力了[转]
假设我们有一个类:Product public class Product { public string Id { get; set; } public string Name { get; set ...
- 一些有用的javascript实例分析(三)
原文:一些有用的javascript实例分析(三) 10 输入两个数字,比较大小 window.onload = function () { var aInput = document.getElem ...