Cookies
Asp.Net里的Cookies
什么是 cookies
Cookies 有很多种,网站上的 cookie ,浏览器的 cookie ,会话 cookie 等, cookies 是存储浏览器与网站访问时的数据,是 Web 服务器与客户端连接的方式之一。用户访问不同的站点,各个站点会向用户的浏览器发送一个 cookie ,浏览器会分别存储。实际上, cookies 是一小段文本文件,发生在用户请求和页面在 Web 服务器与浏览器之间传递。
Cookies 的用途
Cookies 很多时候被用于身份的验证、用户会话识别、购物车的处理。 Cookies 也可用于把数据从一个网页传值到另一个网页。
使用 cookies 安全吗?
使用 Cookie 安全吗? 这个问题没有明确的答案, cookie 可能被黑客窃取,获得受害者的网络账户。 Cookies 不能携带病毒也不能在主机电脑上安装恶意软件。然而,他们却可以使用间谍软件跟踪用户网上的浏览活动。
使用 cookies
创建 cookie
有许多的方法创建 cookie ,我将概述 其中一些比较常用的:
方式一:通过使用 HttpCookies 类
// 第一种方式 HttpCookie TestCookies = new HttpCookie( " TestCookies " ); TestCookies.Value = TextBox1.Text; TestCookies.Expires = DateTime.Now.AddHours( 1 ); Response.Cookies.Add(TestCookies);方式二:使用Response
// 第二种方式 Response.Cookies[ " TestCookies " ].Value = TextBox1.Text; Response.Cookies[ " TestCookies " ].Expires = DateTime.Now.AddDays( 1 );方式三:把多个值写入一个 cookies
// 把多个值写入一个cookies中 Response.Cookies[ " TestCookies " ][ " AboutMe " ] = TextBox1.Text; Response.Cookies[ " TestCookies " ][ " SurName " ] = " Wen " ; Response.Cookies[ " TestCookies " ][ " FirstName " ] = " Jianfeng " ; Response.Cookies[ " TestCookies " ][ " Sex " ] = " Boy " ; Response.Cookies[ " TestCookies " ][ " Work " ] = " Programmer " ; Response.Cookies[ " TestCookies " ].Expires = DateTime.Now.AddDays( 1 );
读取 cookie
在上述代码中,我已经使用了 3 种方法来创建 cookie ,所以,这里有必要获取下:
对于方法一:
string test = Request.Cookies[ " TestCookies " ].Value;
对于方法二:
string test = Request.Cookies[ " TestCookies " ].Value;
对于方法三:
// 取出多个值在同一个cookies的方法 string test; test = Request.Cookies[ " TestCookies " ][ " AboutMe " ]; test = test + " ,姓名: " + Request.Cookies[ " TestCookies " ][ " SurName " ]; test = test + " " + Request.Cookies[ " TestCookies " ][ " FirstName " ]; test = test + " ,性别: " + Request.Cookies[ " TestCookies " ][ " Sex " ]; test = test + " ,职业: " + Request.Cookies[ " TestCookies " ][ " Work " ];
Label1.Text = test;
删除 cookie
在上述代码中,我已经用了三种方法来创建和读取 cookies 。现在看看下面的代码将如何删除 cookies 。
if (Request.Cookies[ " TestCookies " ] != null ) { Response.Cookies[ " TestCookies " ].Expires = DateTime.Now.AddDays(- 1 ); // 刷新页面 Response.Redirect( " TestPage.aspx " ); }
了解 HttpCookie s类,它包含了所有的 cookie 值的集合
我们不需要使用任何额外的命名空间,只需要引用HttpCookies 类 ,因为这个类派生自System.Web 命名空间(见第一种方法)。
HttpCookie类有一些常用的属性:
Domain :获取或设置将此 Cookie 与其关联的域。 Expires :获取或设置此 Cookie 的过期日期和时间。 HasKeys :获取一个值,通过该值指示 Cookie 是否具有子键。 Name :获取或设置 Cookie 的名称。 Path :获取或设置要与当前 Cookie 一起传输的虚拟路径。 Secure :获取或设置一个值,该值指示是否使用安全套接字层 (SSL) (即仅通过 HTTPS )传输 Cookie 。 Value :获取或设置单个 Cookie 值。 Values :获取单个 Cookie 对象所包含的键值对的集合。
Cookie 的限制
使用 cookies 有以下限制:
1.Cookies 最大为 4096 字节;
2.只能存储 20 个 cookie ,可以使用在一个单一的网站上,如果超过 20 个,浏览器就会丢弃旧的 cookies( IE将每个域增至50个 );
3.用户可以改变浏览器的设置,以使用或禁用 cookies ,所以建议检查用户的状态,并提示用户启用 cookies 。
有时 , 用户 在浏览器禁用了 cookie, 而且浏览器上也没有相关的提示信息来提醒启用cookies。在这种情况下,你需要检查用户的浏览器,在网站首页,并显示相应的提示,或重定向到有这样提示消息的页面来提醒用户。下面的代码将检查用户的浏览器是否支持cookies 。
protected void Page_Load( object sender, EventArgs e) { if (Request.Browser.Cookies) { // 浏览器支持cookies,继续coding...... } else { // 浏览器不支持cookies,那么弹出提示信息或者重定向到新页面进行处理 } }
我建议不要把敏感信息存储在 cookies 里,如果有需要的话,就加密下信息吧。
以上就是cookies 在 asp.net 的使用,欢迎大家一起交流。
分类: web开发
标签: Asp.Net
作者: Leo_wl
出处: http://www.cnblogs.com/Leo_wl/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
版权信息