C#.NET程序之中的cookie编程技巧.doc_第1页
C#.NET程序之中的cookie编程技巧.doc_第2页
C#.NET程序之中的cookie编程技巧.doc_第3页
C#.NET程序之中的cookie编程技巧.doc_第4页
C#.NET程序之中的cookie编程技巧.doc_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

cookie编程最必须要掌握的知识点,本文章讲一下cookie编程要注意的一些问题及应用技巧。Cookie其实就是由Web服务器创建的、将信息存储在计算机上的文件。那么为什么Web服务器要在客户机上面创建如此文件?这是因为当客户机发送一个请求到WEB服务器时(譬如准备浏览页面时),无论此客户机是否是第一次来访,服务器都会把它当作第一次来对待,WEB服务器所做的工作只是简单的进行响应,然后就关闭与该用户的连接。这样处理过程所带来的缺点时显而易见的。自从网景公司开发出Cookie以后,就可以利用Cookie来保存用户的识别信息。Cookie的作用可以记录了您在该站点上曾经访问过的页面,由此帮助您下次访问该站点时自定义查看。Cookies 也可以存储个人可识别信息。个人可识别信息是可以用来识别或联系您的信息,例如姓名、电子邮件地址、家庭或工作地址,或者电话号码。然而,网站只能访问您提供的个人可识别信息。例如,除非您提供电子邮件名称,否则网站将不能确定您的电子邮件名称。另外,网站不能通过Cookie来访问计算机上的其他信息。当然除非你提供。那么Cookie到底存放在什么地方?如果机器的系统是视窗98且安装在 C 盘中,那么Cookie存放在 C:WindowsCookies 目录中;如果机器系统是视窗2000且安装在 C 盘中,那么Cookie存放在 C:Documents and SettingsAdministratorCookies 目录中。了解了Cookie这么多知识,我们还是来了解一下本文的重点- C#是如何进行Cookie方面编程的。主要内容有二点:其一是 C#是如何写入Cookie;其二是 C#是如何访问自己写入的Cookie。 一、本文介绍的程序设计和运行的软件环境: 微软公司视窗2000服务器版 .Net FrameWork SDK Beta 2 C#进行Cookie方面编程是通过ASP.NET页面来实现的。 二、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): 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创建完毕 ) ; 在 C#页面中创建cookie 此cookie的生命周期定义为一个小时 Cookie名称: Cookie的值: 当然上面的代码产生的Cookie在内容上面有点单调了。其实对于内容十分丰富的Cookie来说,他还有许多属性,充分的利用这些属性,才可以利用了Cookie的强大功能。下表是Cookie的一些常用的属性: 属性 描述 Domain 设定/获得Cookie应属于的域名。一旦设定了此属性,则只限定于此域名的Web服务器访问此Cookie。可以设定为 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): void ReadClicked ( Object Sender , EventArgs e ) /得到用户输入的cookie名称 String strCookieName = NameField . Text ; /获得cookie HttpCookie cookie = Request.Cookies strCookieName ; /确定是否存在用户输入的cookie if ( null = cookie ) Response.Write ( 没有发现指定的cookie ) ; else /找到指定的cookie,显示cookie的值 String strCookieva lue = cookie . Value . ToString ( ) ; Res

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论