首页 > 代码库 > .net cookie

.net cookie

HttpCookie

HttpRequest

HttpResponse

这3个  类 。

之间的关系 。

请求 ,相应 都有一个   public HttpCookieCollection Cookies { get; }  可读取的属性。

简单的说就是 :在一个 webform 中 Request. Cookie  可以读取客户端 所有cookie. 返回 HttpCookie 对象, 然后 返回 的  HttpCookie 对象  可以 设置它的Values(值)、Expires(过期时间)、也可以调用 Clear()来清除该  HttpCookie 对象 的值.

Response.cookie.Add  用来 给客户端写入 cookie

 cookie 可以直接覆盖,一下是测试代码

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="testcookie.aspx.cs" Inherits="bootstrapLearn.testcookie" %><!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>      <label id="lab" runat="server"></label>      <input type="text" runat="server" id="username" />      <input type="text" runat="server" id="pwd" />      <input type="button" value=http://www.mamicode.com/"登陆" runat="server" id="bt" onserverclick="Unnamed_ServerClick" />      <input type="button" value=http://www.mamicode.com/"登出" runat="server" id="bt_out" onserverclick="bt_out_ServerClick" />    </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 bootstrapLearn{  public partial class testcookie : System.Web.UI.Page  {    protected void Page_Load(object sender, EventArgs e)    {      if (!IsPostBack) bind();    }    protected void Unnamed_ServerClick(object sender, EventArgs e)    {      HttpCookie Cookie = new HttpCookie("testcookie");      Cookie.Values.Add("username", username.Value);      Cookie.Values.Add("userpwd", pwd.Value);      Cookie.Expires = DateTime.Now.AddMonths(1);      Response.Cookies.Add(Cookie);      Response.Redirect("testcookie.aspx");    }    public void bind()    {      if (Request.Cookies["testcookie"] != null)      {        lab.InnerText = "";        HttpCookie cookie = Request.Cookies["testcookie"];        for (int i = 0; i < cookie.Values.Count; i++)        {          lab.InnerText += cookie.Values[i].ToString();        }      }      else      {        lab.InnerText = "没有";      }    }    protected void bt_out_ServerClick(object sender, EventArgs e)    {      if (Request.Cookies["testcookie"] != null)      {        HttpCookie Cookie = Request.Cookies["testcookie"];        Cookie.Values.Clear();        DateTime dts = DateTime.Now;//定义时间对象        TimeSpan ts = new TimeSpan(0, 0, 0, 0);//cookie有效作用时间        Cookie.Expires = dts.Add(ts);//添加作用时间        Response.Cookies.Add(Cookie);      }      else      {        lab.InnerText = "没有";      }      Response.Redirect("testcookie.aspx");    }  }}

 Response.Redirect("testcookie.aspx");
  这句话是为了 重新发起请求,访问页面,来证明cookie 的状态是否改了。如果不写这句话,可以手动关闭 浏览器 输入 url 来测试。就是说,按钮 登陆登出,的结果,在本次请求中,没法一次性显示。所以我推荐用 ajax 登陆,登出 更好。

.net cookie