惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
爱范儿
爱范儿
H
Help Net Security
V
Visual Studio Blog
J
Java Code Geeks
Stack Overflow Blog
Stack Overflow Blog
Microsoft Security Blog
Microsoft Security Blog
Apple Machine Learning Research
Apple Machine Learning Research
MyScale Blog
MyScale Blog
The Cloudflare Blog
Martin Fowler
Martin Fowler
D
Docker
腾讯CDC
F
Fortinet All Blogs
雷峰网
雷峰网
GbyAI
GbyAI
G
Google Developers Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Recent Announcements
Recent Announcements
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Blog — PlanetScale
Blog — PlanetScale
Engineering at Meta
Engineering at Meta
博客园 - 聂微东
博客园 - 叶小钗

博客园 - 荆棘鸟

FSO查看文件夹 鼠标事件 《《未完》》 不间断往上滚动 超酷的日历[经典] 右下角弹出提示的代码!!!经典 屏蔽源码 效果怎么样 一个类似于QQ菜单的导航[经典] 滑出式菜单导航栏 js翻页代码集合 [经典] 一个JS的翻页效果(翻书效果) sql常用语句 菜鸟的最爱 .NET经典代码汇总(五) 菜鸟的最爱 .NET经典代码汇总(四) 菜鸟的最爱 .NET经典代码汇总(三) 菜鸟的最爱 .NET经典代码汇总(二) 菜鸟的最爱 .NET经典代码汇总(一) 值传递 Server.Transfer与Response.Redirect页面跳转方法的区别,总合一下
.net下使用cookies
荆棘鸟 · 2007-11-01 · via 博客园 - 荆棘鸟

设置cookie(如原先有则覆盖,没有则新生成一个)
Response.Cookies["iiiChinaDropDown"].Value=myDropDownList.SelectedIndex.ToString();
设置过期时间,不设定,默认情况是关闭本浏览器后该cookie丢失
Response.Cookies ["iiiChinaDropDown"].Expires=DateTime.MaxValue;

调用方法
TextBox1.Text=Request.Cookies ["iiiChinaDropDown"].Value

  二、C#如何写入Cookie:
  为了写入Cookie,他的步骤主要有三步,具体如下:
  
  首先就要创建一个HttpCookie对象,通过这个对象来构造一个Cookie,这个对象的名称就是以后产生的Cookie名称。具体如下代码:
  HttpCookie cookie = new HttpCookie ( 用户定义的Cookie名称 ) ;
  
  然后对创建的HttpCookie对象的 Value 属性分配一个字符串值, Value 的值就是后来产生的Cookie的值。具体代码如下:
  cookie.Value = 用户给Cookie赋值 ; 如果你想写入的Cookie数值不是一个简单的字符串,而是一个复杂的数据类型,我们知道这些数据类型是不能直接存贮到Cookie中的,因为Cookie中只能存贮字符串。但你可以通过一个变通的方法,就是把这个复杂的数据类型转换成多个字符串,然后把这多个字符串同时赋值给产生的Cookie值,这样Cookie中的内容就丰富了,以后利用Cookie完成的功能也强大了。这时你可能就会明白为什么当你浏览Web服务器,Web服务器会知道你什么时候曾经浏览过,并且曾经待过多长时间等信息了。因为这些信息已经存储到你第一次浏览页面时,Web服务器产生的Cookie中去了。下列代码是把多个字符串存储到Cookie的例子:
  cookie [ 姓名 ] = 王天;
  cookie [ 性别 ] = 男;
  cookie [ 年龄 ] = 26;
  
  Cookie有临时的,也有永远的。永久 Cookie 以文件形式存储在计算机上,关闭 Internet Explorer 时仍然保留在计算机上。再次访问该站点时,创建该 Cookie 的网站可以读取。在具体的编程时候,是在写入此Cookie的时候,设定Cookie的生命周期,具体如下代码:
  DateTime dtNow = DateTime . Now ;
  TimeSpan tsMinute = new TimeSpan ( 0 , 1 , 0 , 0 ) ;
  cookie . Expires = dtNow + tsMinute ;
  
  以上代码是设定产生的Cookie的生命期为 一个小时 ,你可以通过修改 TimeSpan 属性来设定产生Cookie的具体生命期。
  .最后调用 Response.Cookies 对象的 Add() 方法,加入此对象,这样就可以产生一个Cookie了。具体代码如下:
  Response . Cookies . Add ( cookie ) ;
  下列代码就是在 C#写入Cookie的完整代码(Write.aspx):
  <% @ language = C# %>
  <script runat = server >
  void WriteClicked ( Object Sender , EventArgs e )
  {
  //创建一个HttpCookie对象
  HttpCookie cookie = new HttpCookie ( NameField . Text ) ;
  //设定此cookies值
  cookie . Value = ValueField . Text ;
  //设定cookie的生命周期,在这里定义为一个小时
  DateTime dtNow = DateTime . Now ;
  TimeSpan tsMinute = new TimeSpan ( 0 , 1 , 0 , 0 ) ;
  cookie . Expires = dtNow + tsMinute ;
  cookie [ 姓名 ] = 王天 ;
  cookie [ 性别 ] = 男 ;
  cookie [ 年龄 ] = 26 ;
  //加入此cookie
  Response . Cookies . Add ( cookie ) ;
  Response . Write ( NameField . Text + Cookie创建完毕 <br > <hr > ) ;
  }
  </script >
  <html >
  <body >
  <h3 > 在 C#页面中创建cookie </h3 >
  此cookie的生命周期定义为一个小时
  <form runat=server>
  Cookie名称:<asp:textbox id = NameField runat = server /> <br >
  Cookie的值:<asp:textbox id = ValueField runat = server /> <br >
  <asp:button text = 创建Cookie onclick = WriteClicked runat = server /> <br >
  </form >
  </body >
  </html >
  当然上面的代码产生的Cookie在内容上面有点单调了。其实对于内容十分丰富的Cookie来说,他还有许多属性,充分的利用这些属性,才可以利用了Cookie的强大功能。下表是Cookie的一些常用的属性:
  
  属性 描述
  Domain 设定/获得Cookie应属于的域名。一旦设定了此属性,则只限定于此域名的Web服务器访问此Cookie。可以设定为ccw.com.cn
  Path 设定/获得Cookie应属于的路径,如果设定后,则访问此Cookie的Web页面则被限定在此路径里面。其他路径的Web页面则不能访问。
  Secure 设定/获得一个标识来表明利用HTTP协议是否能够安全的传输Cookie到客户端的浏览器。
  HasKeys 表明是否此Cookie是否是多个字符串组成的。
  
  在写入Cookie的时候,最大限度的利用这些属性,对于最大程度的利用写入的Cookie是十分重要的。
  
  三、C#是如何读取已产生的Cookie:
  读取指定的Cookie比起写入Cookie要来的容易的多了,只需要使用 Request.Cookies 对象就可以完成。下面是读取指定Cookie名称的方法:
  
  HttpCookie cookie = Request.Cookies [ Cookie的名称 ] ;
  
  下面是显示已经读取了的Cookie的数值:
  
  Response.Write (cookie . Value . ToString ( ) ) ; 掌握了上面的要点,读取Cookie就显得非常容易了,下列是读取Cookie的程序代码(read.aspx): <% @ language = C# %>
  <script runat = server >
  void ReadClicked ( Object Sender , EventArgs e )
  {
  //得到用户输入的cookie名称
  String strCookieName = NameField . Text ;
  //获得cookie
  HttpCookie cookie = Request.Cookies [ strCookieName ] ;
  //确定是否存在用户输入的cookie
  if ( null == cookie ) {
  Response.Write ( 没有发现指定的cookie <br > <hr > ) ;
  }
  else {
  //找到指定的cookie,显示cookie的值
  String strCookieValue = cookie . Value . ToString ( ) ;
  Response.Write ( strCookieName + cookie 的值为: <b >
  + strCookieValue + </b > <br > <hr > ) ;
  }
  }
  </script >
  <html >
  <body >
  在 C#页面中读取指定Cookie值<br >
  <form runat = server >
  请输入要读取的Cookie名称:<asp:textbox id = NameField runat = server />
  <asp:button text = 读取cookie onclick = ReadClicked runat = server />
  </form >
  </body >
  </html >