privatevoidPage_Load(objectsender,System.EventArgse)
{
if(!IsPostBack)
{
WriteCookie();
}
}
privatevoidWriteCookie()
{
if(Request.QueryString["AcceptsCookies"]==null)
{
Response.Cookies["TestCookie"].Value="ok";
Response.Cookies["TestCookie"].Expires=DateTime.Now.AddMinutes(1);
Response.Redirect("CookieRead.aspx?redirect="+Server.UrlEncode(Request.Url.ToString()));
}
else
{
labelAcceptsCookies.Text="接受Cookie="+Request.QueryString["AcceptsCookies"];
}
}
第一个页面测试是否有回信,如果没有,就搜索包含测试结果的查询字符串变量(AcceptsCookies)。如果没有找到查询字符串变量,则表示测试还没有完成,代码就写出一个名为“TestCookie”的Cookie。写出Cookie之后,示例调用Response.Redirect来切换到测试页面(TestForCookies.aspx)。附加到测试页面的URL的是名为redirect的查询字符串变量,该变量中包含了当前页面的URL,这样就能在执行测试后把重定向到该页面。
测试页面可以完全由代码组成,不需要包含控件。以下就是使用的代码:
privatevoidPage_Load(objectsender,System.EventArgse)
{
ReadCookie();
}
privatevoidReadCookie()
{
Stringredirect=Request.QueryString["redirect"];
StringacceptsCookies;
//是否接受Cookie?
if(Request.Cookies["TestCookie"]==null)
//没有Cookie,因此不需要接受
acceptsCookies="0";
else
{
acceptsCookies="1";
//删除测试Cookie
Response.Cookies["TestCookie"].Expires=DateTime.Now.AddDays(-1);
}
Response.Redirect(redirect+"?AcceptsCookies="+acceptsCookies,true);
}