在ASP.NET中确定浏览器是否接受Cookie
创始人
2024-04-23 02:31:09
0

在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控件

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...
2012年第四季度互联网状况报... [[71653]]  北京时间4月25日消息,据国外媒体报道,全球知名的云平台公司Akamai Te...