服务器端操作Cookie[2]

时间:2024-04-04 20:08:15

服务器端操作Cookie,主要注意会使用以下三个类:

HttpCookie,HttpResponse,HttpRequest

关于HttpCookie:

属性 描述 例子
Domain 获取或设置与此Cookie关联的域  
Expires 获取或设置域的过期时间  
HasKeys 获取一个值,通过该值指示Cookie是否具有子键  
HttpOnly 获取或设定一个值,该值指定Cookie是否可通过客户端脚本访问  
Item HttpCookie.Values属性的快捷方式  
Name 获取或设置Cookie的名称  
Path 获取或设置要与当前Cookie一起传输的虚拟路径  
Secure 获取或设定一个值,该值指示是否使用安全套接字段(SSL)传输Cookie  
Value 获取或设置Cookie的值  
Values 获取单个Cookie对象所包含的键值对的集合 cookie.Values["username"]
  1. 添加Cookie

    public partial class cookie_Default : System.Web.UI.Page
    {
    protected void Page_Load(object sender, EventArgs e)
    {
    //创建Cookie
    HttpCookie cookie = new HttpCookie("User"); //对中文进行编码
    cookie["username"] = HttpUtility.UrlEncode("张三");
    cookie["password"] = "zhangsan";
    //注意:此处不可缺少,此处缺少,则无法成功添加cookie
    cookie.Expires = DateTime.Now.AddDays(2); //添加Cookie
    Response.Cookies.Add(cookie);
    }
    }
  2. 读取Cookie 
    public partial class cookie_Default : System.Web.UI.Page
    {
    protected void Page_Load(object sender, EventArgs e)
    {
    //获取Cookie
    HttpCookie cookie = Request.Cookies["User"]; //对中文进行解码
    //输出:
    // 张三
    // zhangsan
    Response.Write(HttpUtility.UrlDecode(cookie["username"])+"<br/>"+cookie["password"]);
    }
    }
  3. 修改Cookie 
    public partial class cookie_Default : System.Web.UI.Page
    {
    protected void Page_Load(object sender, EventArgs e)
    {
    Response.Cookies["User"]["username"] = HttpUtility.UrlEncode("李四"); //对中文进行解码
    //输出:
    // 李四
    Response.Write(HttpUtility.UrlDecode(Request.Cookies["User"]["username"]));
    }
    }
  4. 删除Cookie
    public partial class cookie_Default : System.Web.UI.Page
    {
    protected void Page_Load(object sender, EventArgs e)
    {
    //设置Cookie过期,客户端即可自动删除该Cookie
    Response.Cookies["User"].Expires = DateTime.Now.AddDays(-1);
    }
    }