ASP.NET的七个内置对象
1.Response对象
2.Request对象
3.ViewState对象
4.Sever对象
5.Cookies对象
6.Session对象
7.Appliceation对象
Cookie:是一种网站服务器往客户端内存或硬盘保存少量数据(4kb左右)的一种技术。利用此可以作为验证用户登陆的一种手段以及保存用户浏览记录等等。
Cookie一般历程:
1.用户请求网站页面,网站服务端往客户端添加特定的Cookie信息
2. 当用户再次请求时浏览器默认把Cookie封装到Http报文发送会服务端,服务端通过解析Cookie获得特定信息
3.过期时间到Cookie对象结束。
注:
Cokies是值是以键值对的形式保存的(可以理解为一个数组)
对象Request和Response都提供一个Cookies集合。利用Request获取Cookies对象利用Response设置Cookies对象
创建Cookies对象
HttpCookie cookieModel=new HttpCookie(); //创建一个Cookies对象
cookieModel.name="text"; //设置Cookies名称
cookiesModel.Values.add("name","wjh"); //添加要存储的信息,以键值对的形式存储 values:在单个Cookies对象中包含的健值对集合 value:获取或设置单个Cookies值
cookiesModel.Values.add("age","50");
cookiesModel.Expires=new date.new.Add(1); //设置过期时间为一天
Response.Cookies.Add(cookiesModel); //添加Cookies到响应流
获取客户端返回Cookies
HttpCookies RequestCookies=Request.Cookies["text"];
var name=RequestCookies.values["name"].tostring(); //如为单个直接 .value
修改或删除Cookies
由于浏览器不会把Cookies过期时间传递回来,而且无法删除客户端的文件。所以无论是修改或者删除一个Cookies我们都是创建一个新的cookies去覆盖原有的Cookies以达到修改或删除的效果。
因为不能直接删除客户端的文件,所以删除Cookies时我们可以创建一个过期的Cookies对象进行覆盖。
cookies.Expires=new date.Now.add(-1); //过期时间
********************************************************************************************************************
Session: 是一种把用户数据存储到服务器端的技术,相当于一次会话。系统会给每个登录用户分配一个独立的Session空间。常用于保存与客户端的通宵状态。
原理:
1.asp.net_SessionId:客户端的唯一标识,当用户第一次请求时系统会自动分配一个SessionId。SessionId返回后通常会被存储到内存Cookies中,用户再次请求改网站是会把Cookies发送回去。系统就根据其中的asp.net_sessionId查找到对应的信息。(但浏览器关闭时其内存中的Cookies会注销,如再次打开请求SessionId为空系统会认为是新的一次会话而重新分配空间。而之前的空间则会到了过期时间后自动回收到Session池)
2.因为创建Session比较消耗资源,所以使用了池技术。一次会话完成后Session对象会回到池等待新的会话。
3.当Webconfig禁用了Cookies,那么SessionId会通过地址栏传递。Request.SessionID可以获取到。如果是浏览器禁用了Cookies那么每次请求的都是新的会话。
设置Session的值
Session["name"]=obj
获取Session的值
obj obj=(obj)Session["name"];
Session的属性:
session.count:获取会话状态下Session的个数
session.TimeOut:session的生命周期
session.SessionId:唯一标识符
方法:
session.Abandon();//取消当前会话
session.Clear();//清空当前会话Session对象里的键值对
session.Add();//向当前会话添加一个新项
session.CopyTo();//把当前会话添加到一维数组里
session.Remove/session.RemoveAll/session.RemoveAt
*********************************************************************************************************************
Appliceation对象:存储于服务端的网站全局变量。可以被全部用户使用
Appliceation对象是HttpAppliceationState类的一个实例。HttpAppliceation类是由用户在global.asax文件中定义的应用程序基类。
属性:
.AllKeys:获取HttpAppliceationState集合中的访问键。
.Count:获取HttpAppliceationState集合中的对象数
注:在操作Appliceation对象时要上锁防止多个用户同时修改同一值。上锁:Lock 解锁:UnLock
赋值:Appliceation["userCount"]=123;取值: var v=Appliceation["userCount"];