ck.Value = “Cookie值”;
//设置ck的过期时间为当前时间加上360s,即6分钟后失效
ck.Expires = DateTime.Now.AddSeconds(360);
//设置ck有效范围(域限制)
ck.Domain = "www.google.cn";
//将ck添加至HttpCookieCollection对象
Response.Cookies.Add(ck);
//也可为以下方法添加
//Response.AppendCookie(ck);;
读取用户的Cookie则更为简单,只需根据名称读取HttpCookieCollection集合对象中的子项即可,如以下代码所示。
string str = Request.Cookies["CookieValue"].Value;
除此之外,还可以利用一个HttpCookie存储多个名称/值对形式的Cookie信息,如以下代码所示。
HttpCookie ck = new HttpCookie("CookieValue");
//以名称/值对的方式添加多个Cookie信息
ck.Values.Add("value1", “on
ck.Values.Add("value2", "two");
//设置ck的过期时间为当前时间加上100年,即100年后失效
ck.Expires = DateTime.Now.AddYears(100);
//通过以下两种方法添加
Response.Cookies.Add(ck);
//Response.AppendCookie(ck);
读取这些Cookie如以下代码所示。
string str = "值1:"+Request.Cookies["CookieValue"].Values["value1"];
str += "值2:" + Request.Cookies["CookieValue"].Values["value2"];
说明:多数浏览器支持最多可达4096字节的Cookie,如果要将为数不多的几个值保存到用户计算机上,浏览器还限制了每个站点可以在用户计算机上保存的Cookie数量。大多数浏览器只允许每个站点保存20个Cookie。如果试图保存更多的Cookie,则最先保存的Cookie就会被删除。还有些浏览器会对来自所有站点的Cookie总数作出限制,这个限制通常为300个。用户可以设置自己的浏览器,拒绝接受Cookie,这种情况下只能结合其他的数据存储方式。
4.Server.Transfer传值
这个方法的步骤相对较多,使用该方法编程者可以在另一个页面以公开对象属性的方式来存取值,使用这种方法是面向对象的。该方法的代码编写并不复杂,首先通过定义一个public权限的属性,该属性可返回所需传递的值。然后在第两个页面中,使用Context.Handler属性来获得前一个页面实例对象的引用,即可通过访问自定义的属性获取需要的值。
假设SendValues.aspx页面为传递数据的页面,在SendValues.aspx.cs的页面类中定义一个public属性,通过get直接返回需要传递的值(可为页面中某个服务器控件的属性值)。
public string TransferData
{
get
{
return "VIA";
}
}
在SendValues.aspx.cs的某个方法(如Button控件的Click事件处理方法)中调用HttpServerUtility对象的Transfer方法,如以下代码所示。
Server.Transfer("~/GetValues.aspx");
假设GetValues.aspx为第二个页面,在GetValues.aspx.cs的Page_Load方法中接收前一个页面所传递的值,方法如以下代码所示。
//定义SendValues类型的变量SV_Page
SendValues SV_Page;
//访问HttpContext对象的Handler属性,将值转换为SendValues类型,引用赋值给SV_Page








