美文网首页
Cookie的写入与读出

Cookie的写入与读出

作者: Oh宝贝儿 | 来源:发表于2017-09-20 22:35 被阅读0次

做一个登录页,想要保存用户的密码,这样就不用每次都输入密码了,比较方便, 刚接触cookie,不太懂,自己折腾了

两天,终于弄出个简单的出来,不过还没有给cookie加密,后期再补上吧。下面是代码 ,记在这里,以防自己以后忘记。

1.Login.aspx代码 :

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Login.aspx.cs" Inherits="Login" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>无标题页</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
         用户名:<asp:TextBox runat="server" ID="txtUserName"></asp:TextBox>
        <asp:RequiredFieldValidator runat="server" ID="rfvUserName" ControlToValidate="txtUserName"
 ErrorMessage="用户账号不能为空,请输入您的用户账号!"></asp:RequiredFieldValidator>
        <br/>
        密码:<asp:TextBox runat="server" ID="txtPassword" TextMode="Password"></asp:TextBox>
        <asp:RequiredFieldValidator runat="server" ID="rfvPassword" ControlToValidate="txtPassword"
 ErrorMessage="用户密码不能为空,请输入您的密码!" Display="Dynamic"></asp:RequiredFieldValidator>
        <br/>
        <asp:CheckBox ID="SavePwd" runat="server" Text="保存密码"  
              />
        <br/>
        <asp:Button runat="server" ID="btnLogin" Text="登录" onclick="btnLogin_Click"/>
        <br />
    </div>
    </form>
</body>
</html>

2.Login.aspx.cs代码:

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.SessionState;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using ESchool.BLL;
using ESchool.Entity;
using System.Collections.Generic;

using System.Data;



public partial class Login : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            //读取cookiek 保存的用户信息值
            if (Request.Cookies["LoginInfo"] != null)
            {
                //将本地保存的用户名写入页面的对应的textbox中。
                this.txtUserName.Text = Request.Cookies["LoginInfo"]["userName"];
                //将本地保存的用户密码名写入页面的对应的textbox中。
                this.txtPassword.Attributes.Add("value", Request.Cookies["LoginInfo"]["userPassword"].ToString());
                
                
                //或
                //System.Collections.Specialized.NameValueCollection UserInfoCookieCollection;
                //UserInfoCookieCollection = Request.Cookies["LoginInfo"].Values;
                //this.txtUserName.Text =
                //    Server.HtmlEncode(UserInfoCookieCollection["userName"]);
                //this.txtPassword.Text =
                //    Server.HtmlEncode(UserInfoCookieCollection["userPassword"]);
            }
        }

    }

    protected void btnLogin_Click(object sender, EventArgs e)
    {
       
        //将用户名保存到 cookie
        Response.Cookies["LoginInfo"]["userName"] = this.txtUserName.Text.Trim();
        //判断是否将密码保存到 cookie
        if (SavePwd.Checked)
        {
            Response.Cookies["LoginInfo"]["userPassword"] = this.txtPassword.Text.Trim();
        }


        //密码保存时间
        Response.Cookies["LoginInfo"].Expires = DateTime.Now.AddMinutes(2);


        //或
        //HttpCookie userCookie = new HttpCookie("LoginInfo");
        //userCookie.Values["userName"] = this.txtUserName.Text.Trim();
        //if (this.SavePwd.Checked)
        //{
        //    userCookie.Values["userPassword"] = this.txtPassword.Text.Trim();

        //}

        //userCookie.Expires = DateTime.Now.AddDays(2);
        //Response.Cookies.Add(userCookie);
      
    }

   
}

写这个的时候也遇到了不少问题,首先就是在第一次运行时,保存密码后再次进入这个页面时,发现密码没有保存,

只保存了用户名,以为自己代码有错呢,检查了半天,也上网查了好多,发现没有什么不妥的。几经折腾,在一步一步调试中发现了问题,保存用户名和密码的语句是一样的,能保存用户名就应该保存密码,那么能读出用户名也就应该能读出密码,调试到

  //将本地保存的用户密码名写入页面的对应的textbox中。
                this.txtPassword.Attributes.Add("value", Request.Cookies["LoginInfo"]["userPassword"].ToString());
                


时,发现,密码已经读出来了,可是为什么不能显示在文本框中???纳闷了,看了网上一些资料,发现了好多 人都有这样的问题。

问题在于TextMode="Password",这样的话就会把cookie中读出来密码给屏蔽掉,造成不显示密码。

//将本地保存的用户名写入页面的对应的textbox中。
                this.txtUserName.Text = Request.Cookies["LoginInfo"]["userName"];
                //将本地保存的用户密码名写入页面的对应的textbox中。
                this.txtPassword.Attributes.Add("value", Request.Cookies["LoginInfo"]["userPassword"].ToString());


把显示密码的语句改成上面的形式就可以显示密码了,还没有完全搞清楚 为什么要这样写。研究中,希望我的这些

能对大家有点帮助。

原文出处:http://m.blog.csdn.net/itmaxin/article/details/7667201

相关文章

  • Cookie的写入与读出

    做一个登录页,想要保存用户的密码,这样就不用每次都输入密码了,比较方便, 刚接触cookie,不太懂,自己折腾了 ...

  • Cookie

    写入Cookie 说明:"the_cookie"为待写入的Cookie名,“the_value”为待写入的值。 读...

  • 读写操作

    获取cookie 删除cookie 写入cookie

  • cookie

    通过cookie类实例化cookie对象,使用response.addCokie()写入cookie写入cooki...

  • 前端写入与获取document.cookie分享

    本帖分享写入与获取document.cookie的方法,我们假设你在某个页面写入了两个cookie值: 那么你在控...

  • iOS HTTP网络请求Cookie的读取与写入(NSHTTPC

    iOS网络请求跟cookie 1.iOS HTTP网络请求Cookie的读取与写入(NSHTTPCookieSto...

  • 框架常用操作

    SESSION 获取SESSION 写入SESSION COOKIE 写入COOKIE 自动转换时间戳 前提:查询...

  • buffer 和cache

    cache 写入 buffer 读出

  • Js封装函数

    一、Cookie相关 1、获取cookie 2、写入cookie 3、删除cookie 二、URL相关 1、获取u...

  • cookie

    参考:ios htttp网络请求cookie的读取与写入 NSHTTPCookieStorage(获取和删除coo...

网友评论

      本文标题:Cookie的写入与读出

      本文链接:https://www.haomeiwen.com/subject/qrsasxtx.html