记住密码保存功能

目标: 现在的用户一般都是越来越懒了,所以很多网站登陆时都有提供记住密码功能,以便用户下次登陆不需要再输入用户及密码。



思路:页面中提供记住密码选框当用户勾选记住密码的选项时,如果通过用户合法性及正确性的验证后,便将用户名与密码记入Cookie。当页面再次加载时在Page_Load事件中检测是否上次已记住该用户,如果记住的话便将用户名与密码提取出来赋值给应用程序。由此完成记住密码的功能。

1、验证成功后执行如下代码(将密码存储入Cookies即写Cookies操作)


//保存用户名密码到cookie
// 设置 Cookie 信息
HttpCookie cookie = new HttpCookie("USER_COOKIE");
if (this.check_Save.Checked)
{

// 设置用户昵称、密码
cookie.Values.Add("Name", str_userName);
cookie.Values.Add("Pwd", str_userPwd);

// 令 Cookie 永不过期

cookie.Expires = System.DateTime.Now.AddDays(7.0);

// 保存用户的 Cookie
HttpContext.Current.Response.Cookies.Add(cookie);
}
else // 若记住密码未勾选则默认这次取消记住密码,则将原本存密码的Cookies生存期设为现在,则会自动销毁
{
if (Response.Cookies["USER_COOKIE"] != null)

Response.Cookies["USER_COOKIE"].Expires = DateTime.Now;
}

Response.Redirect("Main.aspx");

2、在页面的Page_Load事件中添加如下代码:

// 非回发时执行如下程序
if (!IsPostBack)
{
// 请求上次存储的Cookies
HttpCookie cookies = Request.Cookies["USER_COOKIE"];

// 如果此Cookies存在且它里面有子键则进行读取
if (cookies != null && cookies.HasKeys)
{
txt_UserName.Text = cookies["Name"];

// 密码框赋值
txt_UserPwd.Attributes.Add("value", cookies["Pwd"]);

// 并设置勾选记住密码
this.check_Save.Checked = true;
}
}


即在下次页面加载时读取Cookies判断是否用户有记住密码,并把值从Cookies中读取出来并赋值给应用程序



这里面有涉及到一个知识点:即给密码框赋值。



// 密码框赋值

txt_UserPwd.Attributes.Add("value", cookies["Pwd"]);

首先设置TextBox类型为密码框模式,即TextBox控件的TextMode属性设置为Password即可,并命名为txt_UserPwd。

例如密码为"123",这时侯如果要在后台直接给txt_UserPwd直接赋值采取txt_UserPwd="123"是无法将值赋给文本密码框,而需要采用 txt_UserPwd.Attributes.Add("value","123")的方式才能赋值。

具相关介绍是为了安全,但是当采用后者来给密码框赋值后,在页面查看源文件时就会看到密码的值,即采用后者后密码框txt_UserPwd的html代码就成如下所述的:

<input name="txt_UserPwd" type="password" id="txt_UserPwd" tabindex="2" class="txt_Style" value="123" />

不知道还有没有更合理的解释。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值