asp.net 操作Cookie以及优缺点

前言

第一次写文章,还请大家多多关照,写的不好和不对的还请大家多多指教,谢谢!

一. 什么是cookie

  Cookie 是一小段文本信息,伴随着用户请求和页面在 Web 服务器和浏览器之间传递。Cookie 包含每次用户访问站点时 Web 应用程序都可以读取的信息。

二. Cookie 的限制

  大多数浏览器支持最大为 4096 字节的 Cookie。由于这限制了 Cookie 的大小,最好用 Cookie 来存储少量数据,或者存储用户 ID 之类的标识符。

三. 操作cookie

  1 存储。

方式一:Response.Cookies["键"].value="值";

方式二:HttpCookie cookie = new HttpCookie("键","值");

cookie.Expires = DateTime.Now.AddMinutes(30); //设置过期时间,如果不设置则是关闭浏览器cookie失效。

Response.Cookies.Add(cookie);

2 读取。

方式一:if(Request.Cookies["键"]!=null)

         string str = Request.Cookies("键").Value;

方式二:if(Request.Cookies["键"]!=null){

string str=Request.Cookies.Get("键");

       }

提示:还有多值cookie读取。

3 删除cookie

HttpCookie cookie = new HttpCookie("键");
     cookie.Expires=DateTime.Now.AddDays(-30);  //将其有效期设置为过去的某个日期。当浏览器检查 Cookie 的有效期时,就会删除这个已过期的 Cookie。
     Response.Cookies.Add(cookie);

四.Cookie 的范围.

可以通过两种方式设置 Cookie 的范围:

    1 将 Cookie 的范围限制到服务器上的某个文件夹,这允许您将 Cookie 限制到站点上的某个应用程序。

      HttpCookie appCookie = new HttpCookie("键");
      appCookie.Value = "值" ;
      appCookie.Expires = DateTime.Now.AddDays(1); 
      appCookie.Path = "/fileName";
      Response.Cookies.Add(appCookie);

   注意: 在某些浏览器中,路径区分大小写。您无法控制用户如何在其浏览器中键入 URL,但如果应用程序依赖于与特定路径相关的 Cookie,请确保您创建的所有超链接中的 URL 与 Path 属性值的大小写相匹配。

    2 将范围设置为某个域,这允许您指定域中的哪些子域可以访问 Cookie。

(1)默认情况下,Cookie 与特定域关联。(例如网站:http//:www.yiming.com)

HttpCookie appCookie = new HttpCookie("键");
       appCookie.Value = "值" ;
       //appCookie.Domain ="www.yiming.com"; //默认情况下www.yiming.com
       Response.Cookies.Add(appCookie);

       (2)Domain属性创建可在多个子域间共享的 Cookie,如下面的示例所示:(多个网站可共享,如:bba.yiming.com;kks.yiming.com;doq.yiming.com等等)

       HttpCookie appCookie = new HttpCookie("键");
       appCookie.Value = "值" ;
       appCookie.Domain =".yiming.com";
       Response.Cookies.Add(appCookie);

五.优缺点。

优点:
      相比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. 不要在Cookie中存储敏感信息,如用户名、密码、信用卡号等等。

2. 在对cookie操作之前要对 Cookie 内容进行 HTML 编码的方法,对信息加密(尤其是存储中文时)。

3. Cookies属性不指示 Cookie 是否启用。它仅指示当前浏览器是否原本支持 Cookie。

4. Cookie存储的数据量有所限制,大多数浏览器支持的最大容量为4096字节,因此不要用Cookie来保存大量数据。

时间: 2025-01-12 13:14:59

asp.net 操作Cookie以及优缺点的相关文章

Asp.net操作cookie大全

实例代码: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 下面是写cookie  HttpCookie cookie = new HttpCookie("Info");//定义cookie对象以及名为Info的项  DateTime dt = DateTime.Now;//定义时间对象  TimeSpan ts=

ASP.NET 操作Cookie详解 增加,修改,删除

Cookie,有时也用其复数形式Cookies,指某些网站为了辨别用户身份而储存在用户本地终端上的数据(通常经过加密).定义于RFC2109.它是网景公司的前雇员Lou Montulli在1993年3月的发明. 服务器可以利用Cookies包含信息的任意性来筛选并经常性维护这些信息,以判断在HTTP传输中的状态.Cookies最典型的应用是判定注册用户是否已经登录网站,用户可能会得到提示,是否在下一次进入此网站时保留用户信息以便简化登录手续,这些都是Cookies的功用.另一个重要应用场合是“购

c#/ASP.NET操作cookie(读写)代码示例

Cookie是存在硬盘上,IE存cookie的地方和Firefox存cookie的地方不一样.不同的操作系统也可能存cookie的地方不一样. 不同的浏览器会在各自的独立空间存放Cookie, 互不干涉以我的windows7, IE8为例,  cookie存在这: C:\Users\xiaoj\AppData\Local\Microsoft\Windows\Temporary Internet Files 注意: 缓存文件和cookie文件,是存在一起的, 都在这个目录下. 你也可以这样找, 打

ASP.NET操作Cookie

1.生成Cookie public static void SetDataByCookie(string mainKey, string subKey, string value, string domain, int expireHours) { var cookie = Request.Cookies[mainKey]; if (cookie == null) { cookie = new HttpCookie(mainKey); } if (!String.IsNullOrEmpty(do

js操作cookie

    前言 最近的一个项目需要做用户最近浏览的效果,需要使用cookie存储的方式来实现,找了一下相关的资料,于是便有了本篇博文,写js操作cookie的文章挺多的,不过我觉得自己还有必要记录一的,毕竟自己的东西印象更加的深刻,也方便以后的查找使用,再次感谢一下网络资料的无私奉献者们——祝你们身体健康,愿上帝与你们同在. 1:处理cookie的js文件,代码简单注释尚可,建议先看一下W3C有关cookie资料(链接往下拉!) /*useCookie.js:处理cookie的文件*/ /** *

ASP.NET中Cookie跨域的问题及解决代码

ASP.NET中Cookie跨域的问题及解决代码 http://www.liyumei.net.cn/post/share18.html Cookies揭秘  http://www.cnblogs.com/zhangziqiu/archive/2009/08/06/cookies-javascript-aspnet.html 最近在项目开发中遇到一个很棘手的问题,一个用户在顶级域名登录后,跳转到自己所拥有的二级域名下管理二级网站时,cookie丢失了,一直找解决办法找了整整两天,百度谷歌一大堆,

ASP.NET的Cookie和Session

HTTP属于应用层,HTTP协议一共有五大特点:1.支持客户/服务器模式;2.简单快速;3.灵活;4.无连接;5.无状态. 无状态HTTP协议是无状态的协议.一旦数据交换完毕,客户端与服务器端的连接就会关闭,再次交换数据需要建立新的连接.这就意味着服务器无法从连接上跟踪会话.服务器不记的上次给了浏览器什么,否则服务器的压力会太大.每次请求到达asp.net,都创建一个HttpHandler的新对象来处理. public class TestController : Controller { in

.NET跨平台之旅:ASP.NET Core从传统ASP.NET的Cookie中读取用户登录信息

小分享:我有几张阿里云优惠券,用券购买或者升级阿里云相应产品最多可以优惠五折!领券地址:https://promotion.aliyun.com/ntms/act/ambassador/sharetouser.html?userCode=ohmepe03 在解决了asp.net core中访问memcached缓存的问题后,我们开始大踏步地向.net core进军--将更多站点向asp.net core迁移,在迁移涉及获取用户登录信息的站点时,我们遇到了一个问题--如何在asp.net core

asp.net下cookie 的基础使用

cookie作为在B/S开发中经常被使用到的东西,asp.net必然提供了现成的东西给我们使用. 就是这个对象:HttpCookie,当然了,对于asp.net来说,Request和Response中也有cookie对象. 首先闹清楚什么是cookie: Cookie是由服务器端生成,发送给User-Agent(一般是浏览器),浏览器会将Cookie的key/value保存到某个目录下的文本文件内,下次请求同一网站时就发送该Cookie给服务器(前提是浏览器设置为启用cookie).Cookie