zoukankan      html  css  js  c++  java
  • 检测浏览器是否接受Cookies

     一种确定浏览器是否接受 Cookie 的方法是先编写一个 Cookie,然后再尝试读取这个 Cookie。如果不能读取这个 Cookie,则可以认为该浏览器不接受 Cookie。

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

    第一个页面的代码如下:

    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"];
       }

      }

    第一个页面测试是否有回信,如果没有,就搜索包含测试结果的查询字符串变量 (AcceptsCookies)。如果没有找到查询字符串变量,则表示测试还没有完成,代码就写出一个名为“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(-1);
       }

       Response.Redirect(redirect 
    + "?AcceptsCookies=" +acceptsCookies, true);
    }


    邀月注:本文版权由邀月和博客园共同所有,转载请注明出处。
    助人等于自助!  3w@live.cn
  • 相关阅读:
    ASP.NET 数据绑定常用代码及其性能分析
    替代Eval的两种方式
    C# MySQL 数据库操作类
    百度地图api经纬度气死我了!
    APP审核关于3.2.1金融资格的审核回复苹果
    ios 导航栏底部黑线隐藏
    ios 涉及到支付金额计算的相关总结
    ios 图片上传与压缩,UIImagePickerController设置中文
    ios UISegmentedControl的定制
    iOS APP应用之间的跳转
  • 原文地址:https://www.cnblogs.com/downmoon/p/1018443.html
Copyright © 2011-2022 走看看