Asp.net中的状态保持方案

客户端的状态保持方案:ViewState、隐藏域、Cookies、控件状态、URL查询参数
服务端的状态保持方案:Session(会话)ApplicationCaching(缓存)DataBase(数据库)
 
 
一、使用ViewState:
(1)页面上必须有一个服务器端窗体标记(<form runat="server">)
(2)服务器在接收到用户请求一个页面后,会自动在请求报文中找看是否包含__VIEWSTATE的隐藏域,如果有,则将中间的值解码后添加到页面的ViewState属性中。
(3)服务器在输出时,会自动的将ViewState中的值添加到表单里名叫__VIEWSTATE的隐藏域中。
 
ViewState适用于同一个页面在不关闭的情况下多次与服务器交互。
 
二、使用Cookie:
Cookie是一种能够让网站服务器把少量数据(4kb左右)储存到客户端硬盘或内存,并且读取出来的一种技术。
当你浏览某网站时,由Web服务器放置于你硬盘上的一个非常小的文本文件,它可以记录你的用户ID、浏览过的网页或者停留的时间等网站想要你保存的信息。当你再次通过浏览器访问该网站时,浏览器会自动将属于该网站的Cookie发送到服务器去,服务器通过读取Cookie,得知你的相关信息,就可以做出相应的动作。如在页面显示欢迎你的标语,或者让你不用输入ID、密码就直接登录等等。
浏览器保存Cookie有两种方式:(看是否设置过期时间)
1—浏览器的内存中;
2—浏览器所在的电脑的硬盘中。为将要写入到浏览器的Cookie对象设置失效时间:
cook.Expires = DateTime.Now.AddMinutes(5);//设置cook5分钟后失效
开发场景:常用于登录和保存用户最近浏览商品
Cookie的操作:
服务器设置Cookie:
     HttpCookie cook = new HttpCookie(“uId”, “10001”);//(“键”,”值”)
     cook.Expires = DateTime.Now.AddDays(18);//设置失效日期-现在之后的18天后
       context.Response.Cookies.Add(cook); //添加到响应中
 
服务器获得客户端传来的Cookie:
     string strUName=context.Request.Cookies[“uId”].Value;//从请求中获得Cookie
 
三、使用Session:
 
Session提供了一种把信息保存在服务器内存中的一种方式。
在整个用户会话过程中都会保留此信息。
当用户在应用程序中从一个网页浏览到另一个网页时,存储在 Session 对象中的变量不会被丢弃。
当会话过期或终止时,服务器就会清除 Session 对象
开发场景:常用于保存登录用户ID
 
四、Application:
在服务器端保存网站共享数据的一种方式;
原文地址:https://www.cnblogs.com/chay1227/p/2960605.html