记住密码功能

本文介绍了一种使用Cookies实现记住密码功能的方法。通过设置Cookie来存储用户的登录信息,并在下次访问时自动填充用户名和密码。
目标:现在的用户一般都是越来越懒了,所以很多网站登陆时都有提供记住密码功能,以便用户下次登陆不需要再输入用户及密码。

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

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

//保存用户名密码到cookie

//设置Cookie信息

HttpCookiecookie=newHttpCookie("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

HttpCookiecookies=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" />

不知道还有没有更合理的解释。

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

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

//保存用户名密码到cookie

//设置Cookie信息

HttpCookiecookie=newHttpCookie("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

HttpCookiecookies=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" />

不知道还有没有更合理的解释。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值