Asp.net内置对象之Cookies(简介/属性方法/基本操作及实例)

 更新时间:2021年9月22日 10:17  点击:1462

一、了解Cookies对象

Cookies是由Web服务器管理的存放在客户计算机中的一个数据集合。这些数据是客户端、服务器端相关的。也就是说客户浏览器每登录一个网站,在Cookies中就会保存客户浏览器与该网站的相关信息。即使客户用同一个浏览器登陆了多个网站,在Cookies中依然会保存浏览器与多个网站的相关信息,但Cookies中这些信息的管理是有序的,当客户浏览器再次登录某网站时,只有Cookies中相对应的信息会发生作用。

Cookies是Web应用程序设计的一项很重要的技术,当Web服务器想知道某个用户的相关资料或几个ASP.NET文件之间传送的数据时就可以使用Cookies。

很多网站中的Web应用程序都是由多个ASP.NET文件组成的,为完成某一特定功能,要求在这些ASP.NET文件之间能够传送一些参数,这些参数就可以存为Cookies,这样当文件1想传送数据给文件2时,只要文件1中的数据将参数作为Cookies写入Cookies.txt文件中,然后文件2再从Cookies.txt文件中将指定名称的Cookies信息读出即可。Cookies中信息的写入工作由Response对象完成,Cookies信息的读取工作由Request对象完成。[在另一篇:Asp.net内置对象之Request对象中]

二、Cookie对象的属性和方法

属性:
(1).Name:获取或设置Cookie的名称
(2).Value:获取或设置Cookie的值
(3).Expires:获取或设置Cookie的过期时间
(4).Version:获取或设置Cookie的符合HTTP维护状态的版本

方法:
(1).Add:增加Cookie变量,将指定的cookie保存到Cookies集合中
(2).Clear:清除Cookie集合中变量
(3).Get:通过变量名或索引得到Cookie变量的值
(4).Remove:通过Cookie变量名或索引删除Cookie对象

三、Cookie的基本操作

1.创建Cookie对象并设置过期时间

复制代码 代码如下:

protected void Page_Load(object sender, EventArgs e)
{
//创建Cookie对象
HttpCookie mycookie = new HttpCookie("MyCookie");//创建一个名称为“MyCookie”的Cookie
mycookie.Value = Server.HtmlEncode("大家好,我是Cookie");//设置Cookie的值
mycookie.Expires = DateTime.Now.AddDays(10);//设置Cookie过期时间
Response.AppendCookie(mycookie);//将一个HTTP Cookie添加到内部Cookie集合中
//Response.Cookies.Add(mycookie);//添加到内部Cookie集合中,与上面相同
}

2.获取Cookie对象
复制代码 代码如下:

protected void Page_Load(object sender, EventArgs e)
{
//获取Cookie对象
try
{
HttpCookie mycookie = new HttpCookie("MyCookie");
mycookie.Value = Server.HtmlEncode("Hello,我是Cookie");
mycookie.Expires = DateTime.Now.AddHours(10);
Response.AppendCookie(mycookie);
Response.Write("创建Cookie成功");
Response.Write("<hr>");
//----------使用------------
HttpCookie getMyCookie = Request.Cookies["MyCookie"];//获取Cookie
Response.Write(getMyCookie.Name + getMyCookie.Value + getMyCookie.Expires);//输出
}
catch
{
Response.Write("Cookie 创建失败");
}
}

四、实例:Cookie的写入和读取

Response对象包含一个Cookies属性。可以通过Cookies属性设置、管理Cookies的信息。如果指定的Cookies不存在则创建该Cookies,如果存在则用新值替换旧值。

Cookie对象需要利用.NET提供的HttpCookie类重新定义。使用“Response.Cookies.Add”将信息发送并保存到客户端的浏览器,利用Request对象提供的方法可以将Cookies信息读取出来。

如下实例:

代码如下:

复制代码 代码如下:

在default1页面中:
protected void Page_Load(object sender, EventArgs e)
{

}
protected void Button1_Click(object sender, EventArgs e)
{
//保存cookie信息

HttpCookie c1 = new HttpCookie("user");//HttpCookie类实例化一个从cookie对象,创建并命名新的cookie
c1.Value = "cookie Value"; //设置单个cookie的值
Response.Cookies.Add(c1); //将指定的cookie保存到Cookies集合中
Response.Write("<script>alert('保存成功!')</script>");

}
protected void Button2_Click(object sender, EventArgs e)
{
//提交页面
Response.Redirect("Default2.aspx");
}

复制代码 代码如下:

在default2页面:
protected void Button1_Click(object sender, EventArgs e)
{
//读取coookie
Response.Write("cookie的名称(Name):" + Request.Cookies["user"].Name + "<br/>");
Response.Write("cookie的值(Value):" + Request.Cookies["user"].Value + "<br/>");

}

五、Cookie对象相比Session、Application的优缺点

以下总结来自:ASP.NET 3.5 开发技术大全

相比Session和Application对象,使用Cookie能持久化保存用户信息。Cookie保存在客户端,而Session和Application保存在服务器端,故Cookie能长久保存。web应用程序可以通过获取客户端的Cookie来进行用户身份认证。

Asp.net包含两个Cookie集合,通过HttpRequest的Cookie集合进行访问,Cookie不是Page类的子类,所以使用方法与Session和Application不同,相比于他们Cookie的优点如下:

1.可以配置过期时间
2.简单:Cookie是一种基于文本的轻量级结构,包括简单的键值对
3.数据持久:因为保存到客户端
4.无任何服务器资源:因为存储在本地客户端

缺点如下

1.大小限制:
2.不确定性:可能用户删除Cookie或者禁用
3.安全风险:可伪造修改

最后推荐一篇:Cookies

[!--infotagslink--]

相关文章

  • 如何使用jQuery操作Cookies方法解析

    这篇文章主要介绍了如何使用jQuery操作Cookies方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-09-08
  • 浅谈js内置对象Math的属性和方法(推荐)

    下面小编就为大家带来一篇浅谈js内置对象Math的属性和方法(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2016-10-03
  • c# 获取CookieContainer的所有cookies函数代码

    这篇文章主要介绍了c# 获取CookieContainer所有cookies的函数代码,需要的朋友可以参考下...2020-06-25
  • c# 对cookies(增、删、改、查)的操作方法

    以前觉得cookies操作无非就那么几种,但是“杯具事件”还是很多的,下面分享一下对cookies的简单操作...2020-06-25
  • 在.ashx文件中获取cookies值实现代码

    .ashx文件中获取cookies值对于一些高手们就不多说了,至于一些小白们还是有必要多多学习啊,好了话不多说,看代码,感兴趣的你可不要错过了哈...2021-09-22
  • 不可或缺的ASP.NET内置对象小结

    这篇文章主要介绍了不可或缺的ASP.NET内置对象小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-09-22
  • selenium中get_cookies()和add_cookie()的用法详解

    这篇文章主要介绍了selenium中get_cookies()和add_cookie()的用法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-04-29
  • C#中Request.Cookies 和 Response.Cookies 的区别分析

    本文通过实例代码向我们展示了C#中Request.Cookies 和 Response.Cookies 的区别,文章浅显易懂,这里推荐给大家。...2020-06-25
  • Cookies的各方面知识(基础/高级)深度了解

    Cookies想必所有人都了解本文将围绕Cookies基础知识(什么是Cookies/Cookies如何传递/Cookies如何存储/Cookies如何查看)Cookies高级知识/Cookie的限制等等方方面面深入了解,感兴趣的朋友可以参考下,或许对你学习cookies有所帮助...2021-09-22
  • C# 清除cookies的代码

    不同的浏览器会把cookie文件保存在不同的地方.这篇文章主要介绍了C# 清除cookies的代码,需要的朋友可以参考下...2020-06-25
  • ASP.Net WebAPI与Ajax进行跨域数据交互时Cookies数据的传递

    本文主要介绍了ASP.Net WebAPI与Ajax进行跨域数据交互时Cookies数据传递的相关知识。具有很好的参考价值。下面跟着小编一起来看下吧...2021-09-22
  • scrapy中如何设置应用cookies的方法(3种)

    这篇文章主要介绍了scrapy中如何设置应用cookies的方法(3种),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-09-22
  • Asp.net内置对象之Server对象(概述及应用)

    Server对象提供对服务器上的方法和属性的访问以及进行HTML编码的功能,本文主要围绕server对象介绍详细功能及常用属性和主要方法,感兴趣的朋友可以了解下,或许对你学习server对象有所帮助...2021-09-22
  • Asp.net内置对象之Request对象(概述及应用)

    Request对象主要用于获取来自客户端的数据,如用户填入表单的数据、保存在客户端的Cookie等,本文将围绕Request对象,讲解其的主要作用:读取窗体变量、读取查询字符串变量、取得Web服务器端的系统信息。取得客户端浏览器信息等等,感兴趣的朋友可以了解下...2021-09-22
  • .net中的session与cookies区别及使用方法

    cookie数据存放在客户的浏览器上,session数据放在服务器上,cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗,考虑到安全应当使用session...2021-09-22
  • ASP.NET下对cookies的操作实现代码

    ASP.NET下对cookies的操作实现代码,需要的朋友可以参考下。...2021-09-22
  • Asp.net内置对象之Cookies(简介/属性方法/基本操作及实例)

    本文将围绕cookies了解Cookies对象/Cookie对象的属性和方法/Cookie的基本操作及实例:Cookie的写入和读取/Cookie对象相比Session、Application的优缺点扥等,感兴趣的朋友可以了解下,或许对你学习cookies有所帮助...2021-09-22
  • c#和net存取cookies操作示例

    这篇文章主要介绍了c#和net存取cookies操作示例,需要的朋友可以参考下...2020-06-25
  • ES6的内置对象扩展实现示例

    本文主要介绍了ES6的内置对象扩展实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2022-07-04