session对象和applicatione对象

来源:互联网 发布:rewrite龙骑士07 知乎 编辑:程序博客网 时间:2024/05/16 04:36

    ASP.NET 的常用对象有:response对象request对象application对象server对象session对象。下面主要讨论session对象和cookie对象。

session对象

    是一个会话,是一个客户与服务器之间的交互。sessionHTTPSeeesionState的类别,他存储个人信息,一个用户不能访问另一个用户的session信息。一个用户说的不是一台电脑就是一个用户,而是一个浏览器,一台电脑里不同的浏览器就是不同的用户,他们的session就是不同,他们是更具sessionID的不同而区分的。session里面存放object对象类型,取出来必须使用强制转换。

    session是存放在服务器端的,他并不是一直都存在的,一定时间后他就会消亡,是根据timeOut设定的,默认的是20分钟。

session对象的应用

    如新闻发布系统当是游客的时候只能查看新闻,不能对新闻进行修改,只有有一定权限的管理员才能修改,所以只有当登陆的是管理员用户时才能进入修改页面进行修改。但是如果不进行一些限制的话,游客可以直接输入修改页面的网址直接进行修改。所以我们可以在登陆时创建一个将用户信息存放在session中,在进入修改页面的时候判断session中是否有能修改权限的用户信息,如果没有则不让他进入修改页面。

    登陆页代码如下:

if (txtUserName.text="zuo" && txtPassword.text=123456){    Session["admin"] =txtUserName.text;}

    修改页面判断如下:

if (Session["admin"]!=null && Session["admin"].ToString ()=="niunan")            {                 //进行相应的操作}else{//返回登陆页Response.Redirect("Login.aspx");}


 application对象

    是应用程序类,程序启动时第一次请求时这个application实例就会运行起来。有了application对象,这个对象会维护1个或多个会话信息,多个信息共享。会话之间是隔离的,用他联系起来。他就相当于全局变量,程序已启动就存在,程序关闭时才灭亡,在他存在的过程中,多个session对象都可以访问它,所以他使用存放一些公关的信息。

    Application 对象握有会被应用程序中的许多页面使用的信息(比如数据库连接信息)。这意味着可以从任何的页面访问这些信息。同时也意味着你可在一个地点改变这些信息,然后这些改变会自动反映在所有的页面上。

application的应用

    他可以用来统计登陆某过网站的人数。在Application_Start事件中,先读取历史访问人数,然后再Session_Start事件中加1,这样每增加一个用户,就就会加1,在Application_End事件中,在将数据更新回数据库。Session_Start事件、Session_End事件、 Application_Start事件、Application_End事件都在"Global.asax",可以在 "Global.asax" 中创建 Application 变变量。

区别

    他俩都是用来存储用户信息。但是application对象只有一个,所有的用户分享一个 Application 对象,而 session 对象和用户的关系是一一对应的,一个用户一个session。所以相当于application存储的是全局变量,而session存储的是局部变量。