C#中Cookie和Session 的用法与区别?

C#中Cookie和Session 的用法与区别?

文献种类:专题技术文献;
开发工具与关键技术:VS
作者:蛋蛋;
撰写时间:2019/05/13

.Cookie 储存在客户端,由用户自己销毁 客户端信息存放对象,可以把用户的信息保存在用户的本地,不必总是访问服务器2.Session 储存在服务端,客户端(浏览器)关闭即销毁(若长时间不使用 且 浏览器未关闭的情况下, 默认自动销毁时间为20分钟) 用户全局变量,对于该用户的所有操作过程都有效3.Application 储存在服务端,没有时间限制,服务器关闭即销毁(前提是自己没写销毁方法)程序全局变量对象,对每个用户每个页面都有效
Application用于保存所有用户共用的数据信息,如果被保存的数据在应用程序生存期内根本不会改变或很少改变,用它。但是在asp.net中有个web.config,可能更好点。如果要使用application,一个需要考虑的问题是任何写操作都有要在application_onstart事件中(Global.asax)中完成。尽管使用application.lock和application.unlock方法来避免操作的同步,但是它串行化了对application的请求,当网站访问量大时会造成性能瓶颈。因此最好不要用它存取大的数据集。
使用方法:
//存放信息
Application[“test”] = “100”;
//读取
String test = Application[“test”].ToString();Session中的信息保存在服务器的内存中,当然你也可以设置它的保存方法(如存在SQL数据库中)。由于用户停止使用程序后它仍然在内存中保持一段时间,因此使用Session对象保存用户数据的方法效率很低。对于小量的数据。使用Session还是一个不错的选择。
Cookie存储量受到很大限制,一般浏览器支持最大容量为4096字节。因此不能用来存储大量数据。由于并非所有浏览器都支持Cookie,并且它是以明文方式保存的,所以最好不要保存敏感性的内容。否则会影响网络安全session: 该对象是HttpSession 类型的对象,描述一个客户端与服务器之间的一次通话时段,该段时间内包含客户端的若干次请求和服务器的相应响应,整个时间段session 对象都存在。常用来实现购物车之类的存储当前用户的数据。不同用户有各自的不同session 对象。
Session[“checkcode”] = “”; String checkcode = Session[“checkcode”]; //保存对象 Agent agent = new Agent(); Session[“agent”] = agent; //取值 Agent agent = (Agent)Session[“agent”]; cookie 的应用HttpCookie cookie = new HttpCookie(“mycookie”); //定义cookie对象以及名为mycookie的项DateTime dt = DateTime.Now;//定义时间对象cookie.Values.Add(“user”,“you name”); //增加属性
cookie.Values.Add(“userid”,“123456”);
Response.AppendCookie(cookie);
//确定写入cookie中读取cookie

猜你喜欢

转载自blog.csdn.net/qq_42577408/article/details/90246319
今日推荐