輕鬆檢測瀏覽器是否接受Cookies資訊

來源:互聯網
上載者:User
cookie|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);
}



相關文章

Beyond APAC's No.1 Cloud

19.6% IaaS Market Share in Asia Pacific - Gartner IT Service report, 2018

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。