欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Asp.Net之Cookie

程序员文章站 2022-06-11 22:14:03
...

一、Cookie介绍

Cookie就是一小段文本(明文),存储在客户端的浏览器内存里面或者磁盘中。

Cookie是跟网站相关,百度可以往客户端写cookie,sina也可写cookie,但是百度只能读取跟百度网站相关的cookie,读不了sina的cookie。

cookie会随着请求网站一块发送到后台【如果请求百度的时候,那么就把百度的cookie放到请求报文里面去,然后发送到后台】

Cookie可以设置一个Path来限制某个路径下面的页面才会把cookie发送到后台。

Cookie的域:浏览器往后台发送数据时候,要把cookie放到请求报文里面去,发送到后台。
那么有个问题:请求是子域的网页,那么主域的cookie会不会发送到后台呢?
答案:是的。一块发送。如果请求时主域页面,子域的cookie是不会发送到后台的。
如果子域想让请求主域页面的时候也一块发送到后台,设置当前Cookie的域为主域可以了。

Response.Cookies["cp3"].Domain = "xxx.com";//设置主域的

Cookie是通过响应报文的方式写到前台

二、CookieDemo.aspx代码

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="CookieDemo.aspx.cs" Inherits="CZBK.ItcastProject.WebApp._2015_5_31.CookieDemo" %>

<!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>
    
    </div>
    </form>
</body>
</html>
三、CookieDemo.aspx.cs代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace CZBK.ItcastProject.WebApp._2015_5_31
{
    public partial class CookieDemo : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            //Cookie:是一个客户端状态保持机制,(网站的数据是存在客户端),
            //与隐藏域与ViewState对象都属于这种客户端状态保持,Cookie中存储的
            //是关于网站相关的文本字符串数据。Cookie的存储方式有两种,如果不指
            //定过期时间,那么存储在客户端浏览器内存中,如果指定了过期时间,
            //那么存储在客户端的磁盘上。Cookie是与具体的网站有关的,如果我们将
            //Cookie设置了过期时间,那么当用户在指定时间内访问我们的网站,那么
            //属于我们网站的Cookie数据会放在请求报文中发送过来,其它网站的Cookie不会发送。

            //创建Cookie.没有指明时间的话是存入浏览器内存
           // Response.Cookies["cp1"].Value = "itcast";


            //创建Cookie并且指定过期时间.
            //Response.Cookies["cp2"].Value = "laowang";
            //Response.Cookies["cp2"].Expires = DateTime.Now.AddDays(3);

            //删除Cookie
           // Response.Cookies["cp2"].Expires = DateTime.Now.AddDays(-1);


            //Cookie跨域(域名)
            Response.Cookies["cp3"].Value = "laowang";
           // Response.Cookies["cp3"].Domain = "xxx.com";//设置主域的。
            Response.Cookies["cp3"].Path = "/2015-5-31";
            Response.Cookies["cp3"].Expires = DateTime.Now.AddDays(3);


            //另外一种创建Cookie的方式。
            HttpCookie cookie1 = new HttpCookie("cp4","sssss");
            cookie1.Expires = DateTime.Now.AddDays(3);
            Response.Cookies.Add(cookie1);
            
        }
    }
}

相关标签: asp.net cookie