ASP.NET WebForm 08 常用对象3 cookies对象

Posted by 古承风 on July 25, 2019

ASP.NET WebForm 08 常用对象3 cookies对象

1. 分析几种用户体验

1.1 登录信息,浏览过的

2. cookies对象的特点

  • 存储少量不重要的数据
  • 存储在客户端的文本文件中(必须设置有效期)
  • 安全性差
  • 存储的数据类型–字符串
  • 浏览器窗口无关,只与访问的站点相关
  • 具体特定的过期日期和时间
  • 在客户端存储后,将随着浏览器对相关网站页面请求而一并发送到web服务器

3. cookies文件的位置

win7中,C:\Users\GardenLu\AppData\Roaming\Microsoft\Windows\Cookies

在之后的系统中,很难找到

4. 使用方法

4.1 创建方法

Response.Cookies[Cookie的名称].value="变量值";

或者

HttpCookie httpCookie = new HttpCookie(Cookies的名称,变量值);

4.2 读取方法

string 变量名 = Request.Cookies[Cookie的名称].value;

Plus:创建时使用Response对象,读取时使用Request对象

5. 实例

Default.aspx,前端页面


<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="Cookies.Default" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            请输入用户名: <asp:TextBox ID="txtUserName" runat="server"></asp:TextBox>
            <hr />
            <asp:Button ID="btnSaveToCookie" runat="server" Text="将用户名保存到cookie" OnClick="btnSaveToCookie_Click" />
        </div>
    </form>
</body>
</html>



后台逻辑,具体逻辑在注释中体现


using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace Cookies
{
    public partial class Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsCallback)
            {
                //取出Cookie值
                if (Request.Cookies["UserName"]!=null)
                {
                    Response.Write("用户名=" + Request.Cookies["UserName"].Value);
                }
                //取出Cookie值
                if (Request.Cookies["UserName"]!=null)
                {
                    Response.Write("电话=" + Request.Cookies["UserPhone"].Value);
                }
            }
        }

        protected void btnSaveToCookie_Click(object sender, EventArgs e)
        {
            //方法一:保存Cookie并设置有效期
            Response.Cookies["UserName"].Expires = DateTime.Now.AddDays(1.0);

            Response.Cookies["UserName"].Value = this.txtUserName.Text.Trim();

            //方法二:

            HttpCookie httpCookie = new HttpCookie("UserPhone", "12345789");
            httpCookie.Expires = DateTime.Now.AddDays(1.0);

            Response.Cookies.Add(httpCookie);

        }
    }
}