cookie的常用操作

cookie介绍:

1. cookie的简单介绍就是把用户的登录信息缓存在本机的浏览器中,且最大容量为4KB,

2. 这种存储是不安全的,通常一般会进行加密处理,但是依旧不能做到安全,所以一般要优先考虑网站的安全性以及应用场景。

3. 大多数浏览器最多可以存储20个cookie的值,如果试图创建更多的cookie,则旧的cookie值会被覆盖。

4. 

aspx前端代码:

 1 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Login.aspx.cs" Inherits="CZBK.ItcastProject.WebApp._2018_11_30.Login" %>
 2 
 3 <!DOCTYPE html>
 4 
 5 <html xmlns="http://www.w3.org/1999/xhtml">
 6 <head runat="server">
 7 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
 8     <title></title>
 9 </head>
10 <body>
11     <form id="form1" runat="server">
12     <div>
13     用户名:<input type="text" name="txtName"  value="<%=LoginUserName%>"/><br />
14         密码;<input type="password" name="txtPwd" /><br />
15         <input type="submit" value="登录" />
16         
17     </div>
18     </form>
19 </body>
20 </html>

处理cookie的详细代码:

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Web;
 5 using System.Web.UI;
 6 using System.Web.UI.WebControls;
 7 
 8 namespace CZBK.ItcastProject.WebApp._2018_11_30
 9 {
10     public partial class Login : System.Web.UI.Page
11     {
12         public string LoginUserName { get; set; }
13         protected void Page_Load(object sender, EventArgs e)
14         {
          //如果是post请求
15 if (IsPostBack) 16 { //从前端获取txtname的值,存放在cookie中,并且分配一个有效期 17 string userName = Request.Form["txtName"]; 18 //写到Cookie中. Response 写 19 Response.Cookies["userName"].Value = Server.UrlEncode(userName); 20 Response.Cookies["userName"].Expires = DateTime.Now.AddDays(7); 21 22 }//如果是get请求,cookie缓存区取出已经存储的值 23 else 24 { 25 //读Cookie。 Request 读 26 if (Request.Cookies["userName"] != null) 27 { 28 string name =Server.UrlDecode(Request.Cookies["userName"].Value); 29 LoginUserName = name; 30 Response.Cookies["userName"].Value = Server.UrlEncode(name); 31 Response.Cookies["userName"].Expires = DateTime.Now.AddDays(7); 32 } 33 } 34 } 35 } 36 }

 多值cookie的写入和接收:

1                     //多值cookie
2                     Response.Cookies["userInfo"]["userName"] = Server.UrlEncode("锦大大");
3                     Response.Cookies["userInfo"]["lastvisit"] = DateTime.Now.ToString();  //保存当前时间
4                     Response.Cookies["userInfo"].Expires = DateTime.Now.AddDays(1);  //设置其有效期

1 //接收多值cookie
2                     string user = Server.HtmlEncode(Request.Cookies["userInfo"]["userName"]);

cookie常用的相关方法:

 1 getDomain();返回cookie的域名.
 2 getMaxAge();返回cookie的存活时间
 3 getName();返回cookie的名字
 4 getPath();返回cookie适用的路径
 5 getSecure();如果浏览器通过安全协议发送Cookie将返回true值,如果浏览器使用标准协议刚返回false值
 6 getValue();返回cookie的值
 7 getVersion();返回cookie所遵从的协议版本setComment(String purpose);设置cookie的注释
 8 setPath(String url);设置Cookie的适用路径
 9 setSecure(Boolean flag);设置浏览器是否仅仅使用安全协议来发送cookie,例如使用Https或ssl
10 setValue(String newvalue);cookie创建后设置一个新的值
11 setVersion(int v);设置cookie所遵从的协议版本。
原文地址:https://www.cnblogs.com/wangjinya/p/10528328.html