Cookie是存在硬盘上,IE存cookie的地方和Firefox存cookie的地方不同。不一样的操做系统也可能存cookie的地方不同。html
不一样的浏览器会在各自的独立空间存放Cookie, 互不干涉以个人windows7, IE8为例, cookie存在这:c#
C:\Users\xiaoj\AppData\Local\Microsoft\Windows\Temporary Internet Fileswindows
注意: 缓存文件和cookie文件,是存在一块儿的, 都在这个目录下。浏览器
你也能够这样找, 打开IE,点击Tools->Internet Options->General Tab下的->Browsing history下的Setting按钮,弹出的对话框中点击View files。不一样的网站会有不一样的cookie文件。缓存
在Asp.net中,读写Cookie是经过使用HttpCookie类来完成的,它的定义以下:安全
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
public
sealed
class
HttpCookie
{
// 获取或设置将此 Cookie 与其关联的域。默认值为当前域。
public
string
Domain {
get
;
set
; }
// 获取或设置此 Cookie 的过时日期和时间(在客户端)。
public
DateTime Expires {
get
;
set
; }
// 获取一个值,经过该值指示 Cookie 是否具备子键。
public
bool
HasKeys {
get
; }
// 获取或设置一个值,该值指定 Cookie 是否可经过客户端脚本访问。
// 若是 Cookie 具备 HttpOnly 属性且不能经过客户端脚本访问,则为 true;不然为 false。默认为 false。
public
bool
HttpOnly {
get
;
set
; }
// 获取或设置 Cookie 的名称。
public
string
Name {
get
;
set
; }
// 获取或设置要与当前 Cookie 一块儿传输的虚拟路径。默认值为当前请求的路径。
public
string
Path {
get
;
set
; }
// 获取或设置一个值,该值指示是否使用安全套接字层 (SSL)(即仅经过 HTTPS)传输 Cookie。
public
bool
Secure {
get
;
set
; }
// 获取或设置单个 Cookie 值。默认值为空引用。
public
string
Value {
get
;
set
; }
// 获取单个 Cookie 对象所包含的键值对的集合。
public
NameValueCollection Values {
get
; }
// 获取 System.Web.HttpCookie.Values 属性的快捷方式。
public
string
this
[
string
key] {
get
;
set
; }
}
|
Cookie写入浏览器的过程:服务器
咱们可使用以下代码在Asp.net项目中写一个Cookie 并发送到客户端的浏览器(为了简单我没有设置其它属性)。cookie
1
2
|
HttpCookie cookie =
new
HttpCookie(
"MyCookieName"
,
"string value"
);
Response.Cookies.Add(cookie);
|
Asp.net获取Cookie的过程:并发
咱们可使用以下代码在Asp.net项目中读取一个Cookie
网站
1
2
3
4
5
|
HttpCookie cookie = Request.Cookies[
"MyCookieName"
];
if
( cookie !=
null
)
labCookie1.Text = cookie.Value;
else
labCookie1.Text =
"未定义"
;
|
Cookie是放在请求头中,发送到服务端的。若是你一直刷新页面,就能发现, 每次HTTP请求,Cookie都会被发送。固然了,浏览器也不是发送它所接收到的全部Cookie,它会检查当前要请求的域名以及目录, 只要这二项目与Cookie对应的Domain和Path匹配,才会发送。对于Domain则是按照尾部匹配的原则进行的。因此,我在访问 www.09me.com 时,浏览器并不会将我在浏览 www.169it.com 所接收到的 Cookie 发出去。
删除Cookie:
其实就是在写Cookie时,设置Expires为一个【早于如今时间的时间】。也就是:设置此Cookie已通过期, 浏览器接收到这个Cookie时,便会删除它们。
1
2
3
|
HttpCookie cookie =
new
HttpCookie(
"MyCookieName"
,
null
);
cookie.Expires =
new
DateTime(1900, 1, 1);
Response.Cookies.Add(cookie);
|
浏览器对于Web服务器应答包头中Cookie的操做步骤
1. 从Web服务器的应答包头中提取全部的cookie。
2. 解析这些cookie的组成部分(名称,值,路径等等)。
3. 断定主机是否容许设置这些cookie。容许的话,则把这些Cookie存储在本地。
浏览器对Web服务器请求包头中全部的Cookie进行筛选的步骤:
1. 根据请求的URL和本地存储cookie的属性,判断那些Cookie能被发送给Web服务器。
2. 对于多个cookie,断定发送的顺序。
3. 把须要发送的Cookie加入到请求HTTP包头中一块儿发送。
转载请注明:文章转载自:[169IT-最新最全的IT资讯]
本文标题:c#/ASP.NET操做cookie(读写)代码示例