黑马训练营自学笔记(05)
---------------------- Windows Phone 7手机开发、.Net培训、期待与您交流! ----------------------
Asp.Net中的Cookie
一、Cookie是跨页面的
我们知道表单是和页面相关的,只有浏览器提交了表单数据,服务端才能得到。而有时候希望在服务器端任何地方都能存取和用户相关的一些信息。比如:一但用户登录成功后就可以访问其可以访问的各个页面,在各个页面都知道是该用户进行的访问(这个是不安全的,只是为了举个例子.)。显然表单不适合去实现这个功能。这个时候我们就要用到Cookie,Cookie是和站点相关的,同时也是跨页面的。通过后面Http协议的学习可以知道,浏览其在向服务器发送页面请求时,会在其请求信息中携带上这个站点的所有Cookie,服务端发回信息时也会携带上这个站点的Cookie。Cookie是和站点相关的,是和Http协议相关的,所以Cookie自然是跨页面的。但Cookie是存放在客户端,而不是服务端的。
二、Cookie的使用
设置:Response.SetCookie(new HttpCookie(名称,值))
读取:Request.Cookie[名称]
三、Cookie的一些缺陷
凡是都具有两面性,Cookie的出现,使得我们能方便的实现搞跨页面存取信息。但是我们也要认识到Cookie的一些不足之处,这样才能合理的对Cookie进行使用。
(1)通过上面我们知道浏览器在发送页面请求的时候是把和整个站点相关的Cookie都放到了请求数据中,即使是访问该站点的一张图片,浏览器也会不遗余力的把所有Cookie都发给服务器。因为Http协议是无状态记忆的,只有采用这种机制去实现。这样必然对访问的速度造成一定的影响。
(2)Cookie中存储的信息量是有限的,并且Cookie是存在客户端的。正因为Cookie是存在客户端的,所以Cookie是不够安全的,千万不能把机密信息保存在Cookie中,即使对其加密也有被别人破解的可能性。并且通过工具能够进行Cookie的查看和修改,这样一来,如果站点的登录机制是采用Cookie实现的,就会存在Cookie欺骗。
---------------------- Windows Phone 7手机开发、.Net培训、期待与您交流! ----------------------
---------------------- Windows Phone 7手机开发、.Net培训、期待与您交流! ----------------------