Cookie对象
Cookie对象用于保存客户端浏览器请求的服务器页面,也可用于存放非敏感性的用户信息,信息保存的时间可以根据用户的需要经行设置。并非所有的浏览器都支持Cookie,并非数据信息都是以文本的形式存在客户端的。
Cookie常用属性
属性 | |
Expires | 设定Cookie变量的有效时间,默认是1000分钟,若设置为0,则可以实时删除Cookie变量 |
Name | 取得Cookie变量名称 |
Value | 获取或设置Cookie变量的内容值 |
Path | 获取或设置Cookie只用的URL |
Cookie常用方法
方法 | |
Equals | 指定Cookie是否等于当前的Cookie |
ToString | 返回此Cookie对象的一个字符串表示形式 |
使用Cookie对象保存和读取客户端信息
要存一个Cookie变量,可以通过Response对象的Cookies集合实现。使用语法:
1
|
Response.Cookies[varName].Value= "值" ; //varName为变量名称
|
要取回Cookie,使用Requset对象的Cookies集合,并且要指定的Cookies集合返回。写法:
1
|
变量名称=Request.Cookies[varName].Value; |
Cookie也弄个实验吧!建立一个CookiesWeb.aspx页面,加2按钮和一个Lable空间,一个按钮负责写入我计算机的IP信息,另外一个按钮则负责读出之前那个按钮写入的信息。页面如下:
CookiesWeb.aspx.cs代码如下:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace WebSessionDemo { public partial class CookiesWeb : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } /// <summary> /// 写入按钮 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void btnWrite_Click(object sender, EventArgs e) { string MyPcIp = this.Request.UserHostAddress.ToString(); this.Response.Cookies["IP"].Value = MyPcIp; } /// <summary> /// 读出按钮 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void betRead_Click(object sender, EventArgs e) { this.labmessage.Text = this.Response.Cookies["IP"].Value; } } }
由于我计算的网络环境,我把上面的UesrHostAddress改成UserAgent,运行如下:
因为Cookie对象可以保存和读取客户端的信息,所以存在安全问题。用户可以通过它对登录的客户经行标识防止用户恶意攻击网站。对Cookie的初始就先了解到这里。