重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
如何在ASP.NET中查看Cookie状态?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
公司主营业务:成都网站设计、成都网站建设、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。成都创新互联公司是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。成都创新互联公司推出广丰免费做网站回馈大家。ASP.NET 是开源,跨平台,高性能,轻量级的 Web 应用构建框架,常用于通过 HTML、CSS、JavaScript 以及服务器脚本来构建网页和网站。
可以通过 Response.Cookies.Add() 方法直接向浏览器写入 Cookie,通过 Request.Cookies 方法读取已经设置好的 Cookie。
写入Cookie 的方法是,先创建一个HttpCookie 对象,通过这个对象来构造一个 Cookie。例如:
//创建一个 HttpCookie 对象 HttpCookie cookie = new HttpCookie("乐猪网"); //设定此 Cookie 值 cookie.Value = "编程入门网站"; //加入此 Cookie Response.Cookies.Add(cookie);
Cookie 有临时的,也有永远的。永久的 Cookie 以文件形式存储在计算机上,关闭 Internet Explorer 时仍然保留在计算机上。再次访问该站点时,创建该 Cookie 的网站可以读取。在具体的编程时候,是在写入此 Cookie 的时候,设定 Cookie 的生命周期,其代码如下:
DateTime dtNow = DateTime.Now; TimeSpan tsMinute = new TimeSpan(0, 1, 0, 0); cookie.Expires = dtNow + tsMinute; Response.Cookies.Add(cookie);
以上代码是设定新产生的 Cookie 的生命期为一个小时,可以通过修改 TimeSpan 的属性来设定 Cookie 具体的生命期。如果不设定时间,默认时间为 20 分钟。
读取指定的 Cookie 时的语句如下:
HttpCookie cookie = Request.Cookies["Cookie 的名称"];
如果想将读出的 Cookie 显示出来时,可以使用以下语句:
Response.Write(cookie.Value.ToString());
Cookie 是保存在客户端的字符串,它会影响用户的行为,但又不受用户的直接管理,虽然它只是一种标志(字母数字字符串)而不是程序,不可能用它来收集用户的信息,破坏用户的隐私。但有的用户仍然不放心,也可能是不愿意别人占用自己的空间,相当一部分用户在浏览器中禁止使用 Cookie。这就给识别用户带来了困难。
ASP.NET 2.0 现在已经完全解决了在不使用 Cookie 的情况下,识别用户的方法(ASP.NET 1.1 版本只部分地解决了这一问题)。解决的方法很简单,只需要在应用程序的根目录下的 Web.config 文件中,对
或
配置时,当编写到“cookieless=”语句时,将弹出 AutoDetect、useCookies、useDeviceProfile、useUri 四种选择。选择 AutoDetect 或 useUri 均可在无 Cookies 的条件下识别用户。
虽然在
系统是如何在无 Cookie 的条件下识别用户的呢?原来当进行了前面的设置以后,系统将会要求用户自动将客户端的资源信息嵌入到用户设用的 URL 语句中。例如,在使用 Cookie 的情况下,某用户设用网页时的 URL 是:http://yourserver/folder/default.aspx,现在设置了不使用 Cookie 的配置,调用的语句的 URL 将变成:http://yourserver/folder/(session ID here)/default.aspx,其中“session ID here”代表用户的资源信息所处的位置。该信息已经被插入到 URL 的语句中。由于用户资源信息对于用户来说具有惟一性,因此可以利用它与 Session 对象结合,一起来识别用户。
下面举一个完整的小例子吧,请看下面的源代码:
HttpCookie ck = Request.Cookies["cktest"]; if (ck == null) { ck = new HttpCookie("cktest"); ck.Value = "123"; ck.Expires = DateTime.Now.AddSeconds(20);//20秒的有效期 Response.Cookies.Add(ck); Response.Write("new ck"); } else { Response.Write(ck.Value.ToString()); } //在一个Cookie中储存多个信息 HttpCookie cookie = new HttpCookie("cktest"); cookie.Values.Add("v1", "1"); cookie.Values.Add("v2", "2"); cookie.Values.Add("v3", "3"); Response.AppendCookie(cookie); HttpCookie cookies = Request.Cookies["cktest"]; string value1 = cookies.Values["v1"]; string value2 = cookies.Values["v2"]; Response.Write(value1 + value2);
看完上述内容,你们掌握如何在ASP.NET中查看Cookie状态的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注创新互联行业资讯频道,感谢各位的阅读!