现在的位置: 首页 > 综合 > 正文

Check 实现记住密码的功能

2014年10月24日 ⁄ 综合 ⁄ 共 2241字 ⁄ 字号 评论关闭

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

 

   思路:页面中提供记住密码选框当用户勾选记住密码的选项时,如果通过用户合法性及正确性的验证后,便将用户名与密码记入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" />

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

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/mocklystone/archive/2009/10/29/4744851.aspx

抱歉!评论已关闭.