在ASP.NET中确定浏览器是否接受Cookie

开发 后端
本文介绍如何在ASP.NET中确定浏览器是否接受Cookie。

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

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

在asp.net中检查浏览器是否接受Cookie的***个页面的代码如下:

  1. protected System.Web.UI.WebControls.Label labelAcceptsCookies;  
  2.    
  3.   private void Page_Load(object sender, System.EventArgs e)  
  4.   ...{  
  5.      
  6.    if(!IsPostBack)  
  7.    ...{  
  8.     WriteCookie();  
  9.       
  10.    }  
  11.   }  
  12.  
  13.   private void  WriteCookie()  
  14.   ...{  
  15.    if( Request.QueryString["AcceptsCookies"] ==null)  
  16.    ...{  
  17.     Response.Cookies["TestCookie"].Value = "ok";  
  18.     Response.Cookies["TestCookie"].Expires = DateTime.Now.AddMinutes(1);  
  19.     Response.Redirect("CookieRead.aspx?redirect="+Server.UrlEncode(Request.Url.ToString()));  
  20.    }  
  21.    else 
  22.    ...{  
  23.     labelAcceptsCookies.Text = "接受 Cookie = "+Request.QueryString["AcceptsCookies"];  
  24.    }  
  25.   }  

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

测试页面可以完全由代码组成,不需要包含控件。以下就是用于测试浏览器是否接受Cookie使用的代码:

  1. private void Page_Load(object sender, System.EventArgs e)  
  2.   ...{  
  3.    ReadCookie();  
  4.   }  
  5.   private void ReadCookie()  
  6.   ...{  
  7.    String redirect  = Request.QueryString["redirect"];  
  8.    String acceptsCookies ;  
  9.    // 是否接受 Cookie?  
  10.    if(Request.Cookies["TestCookie"] ==null)  
  11.     // 没有 Cookie,因此不需要接受  
  12.     acceptsCookies = "0";  
  13.    else 
  14.    ...{  
  15.     acceptsCookies = "1";  
  16.     //删除测试 Cookie  
  17.     Response.Cookies["TestCookie"].Expires = DateTime.Now.AddDays(-1);  
  18.    }  
  19.    Response.Redirect(redirect + "?AcceptsCookies=" +acceptsCookies, true);  
  20. }  

这样就实现了在ASP.NET中确定浏览器是否接受Cookie。

【编辑推荐】

  1. 在ASP.NET中防止页面多次提交的代码实现
  2. ASP.NET服务器控件开发之复合控件
  3. ASP.NET中的“三层结构”简介
  4. ASP.NET中优化性能方法26则
  5. 比较ASP.NET中的html控件和web控件
责任编辑:yangsai 来源: CSDN
相关推荐

2009-07-21 11:11:44

删除CookieASP.NET

2009-07-24 17:04:57

ASP.NET中Coo

2009-07-30 13:33:55

ASP.NET中的co

2009-07-27 10:22:16

ASP.NET中Coo

2009-07-29 15:51:29

ASP.NET中执行w

2009-08-06 15:56:40

ASP.NET Coo

2009-08-05 18:30:36

Session和CooASP.NET表单

2009-08-06 16:11:17

2009-01-16 13:17:16

AjaxASP.NET.NET

2009-09-03 18:58:51

ASP.NETSession失效

2009-07-23 16:44:51

AdRotator控件ASP.NET

2009-06-12 09:24:34

ASP.NET窗体ASP.NET MVC

2009-07-28 12:52:50

ASP.NET coo

2009-07-20 17:21:43

Session状态ASP.NET

2009-07-20 14:54:23

HttpWorkerRASP.NET

2009-07-22 17:45:35

ASP.NET教程

2009-07-28 17:17:19

ASP.NET概述

2009-08-03 14:22:33

什么是ASP.NET

2009-07-20 16:45:41

使用StringBuiASP.NET

2009-07-27 09:31:06

定义JavaScripASP.NET
点赞
收藏

51CTO技术栈公众号