唐山网站建设

设为主页 加入收藏 繁體中文

判定浏览器是否是接受Cookies

 1种肯定浏览器是否是接受 Cookie 的方法是先编写1个 Cookie,然后再尝试读取这个 Cookie。假设不能读取这个 Cookie,则可以以为该浏览器不接受 Cookie。

  我编写了1个简单的示例来讲明如何测试 Cookie 是否是被接受。该示例包括两个页面。在第1个页面中,我编写了1个 Cookie,然后把浏览器重新定向到第2个页面。第2个页面尝试读取这个 Cookie,转而将浏览器重新定向到第1个页面,并向 URL 添加1个带有测试结果的查询字符串变量。

  第1个页面的代码以下:

protected System.Web.UI.WebControls.Label labelAcceptsCookies;

private void Page_Load(object sender, System.EventArgs e)
{

if(!IsPostBack)
{
WriteCookie();

}
}

private void WriteCookie()
{
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"];
}
}


  第1个页面测试是否是有回信,假设没有,就搜索包括测试结果的查询字符串变量 (AcceptsCookies)。假设没有找到查询字符串变量,则表示测试还没有完成,代码就写出1个名为“TestCookie”的 Cookie。写出 Cookie 以后,示例调用 Response.Redirect 来切换到测试页面 (TestForCookies.aspx)。附加到测试页面的 URL 的是名为 redirect 的查询字符串变量,该变量中包括了当前页面的 URL,这样便可以在履行测试后把重定向到该页面。

  测试页面可以完全由代码组成,不需要包括控件。以下就是使用的代码:

private void Page_Load(object sender, System.EventArgs e)
{
ReadCookie();
}
private void ReadCookie()
{
String redirect = Request.QueryString["redirect"];
String acceptsCookies ;
// 是否是接受 Cookie?
if(Request.Cookies["TestCookie"] ==null)
// 没有 Cookie,因此不需要接受
acceptsCookies = "0";
else
{
acceptsCookies = "1";
//删除测试 Cookie
Response.Cookies["TestCookie"].Expires = DateTime.Now.AddDays(⑴);
}
Response.Redirect(redirect + "?AcceptsCookies=" +acceptsCookies, true);
}

http://www.fw8.net/
TAG:字符串,测试,页面,变量,示例
评论加载中...
内容:
评论者: 验证码: