详解ASP.NET Session |
本文标签:ASP.NET Session 阅读本文章前,需要读者对以下知识有所了解 。否则,阅读过程中会在相应的内容上遇到不同程度的问题 。 懂得ASP/ASP.NET编程 Session模型简介 这个唯一的SessionID是有很大的实际意义的 。当一个用户提交了表单时,浏览器会将用户的SessionID自动附加在HTTP头信息中,(这是浏览器的自动功能,用户不会察觉到),当服务器处理完这个表单后,将结果返回给SessionID所对应的用户 。试想,如果没有 SessionID,当有两个用户同时进行注册时,服务器怎样才能知道到底是哪个用户提交了哪个表单呢 。当然,SessionID还有很多其他的作用,我们会在后面提及到 。 除了SessionID,在每个Session中还包含很多其他信息 。但是对于编写ASP或ASP.NET的程序与来说,最有用的还是可以通过访问ASP/ASP.NET的内置Session对象,为每个用户存储各自的信息 。例如我们想了解一下访问我们网站的用户浏览了几个页面,我们可能在用户可能访问到每个的页面中加入:
可能有些有些读者会问:这个看似像是数组的Session(“..”)是哪里来的需要我定义吗实际上,这个Session对象是具有 ASP解释能力的的WWW服务器的内建对象 。也就是说ASP的系统中已经给你定义好了这个对象,你只需要使用就行了 。其中Session(“..”)中的..就好像变量名称,Session(“..”)=$$中的$$就是变量的值了 。你只需要写上句话,在这个用户的每个页面中都可以访问..变量中的值了 。 其实ASP一共内建了7个对象,有Session、Application、Cookie、Response、Request、Server等 。在其他的服务器端脚本语言如JSP、PHP等中也有其类似的对象,只是叫法或者使用方法上不太一样 。 ASP Session的功能的缺陷 进程依赖性:ASP Session状态存于IIS的进程中,也就是inetinfo.exe这个程序 。所以当inetinfo.exe进程崩溃时,这些信息也就丢失 。另外,重起或者关闭IIS服务都会造成信息的丢失 。 Web.config文件简介 Web.config有两种,分别是服务器配置文件和Web应用程序配置文件,他们都名为Web.config 。在这个配置文件中会保存当前IIS服务器中网页的使用哪种语言编写的、应用程序安全认证模式、Session信息存储方式的一系列信息 。这些信息是使用XML语法保存的,如果想对其编辑,使用文本编辑器就行了 。 其中服务器配置文件会对IIS服务器下所有的站点中的所有应用程序起作用 。 在.NET Framework 1.0中,服务器的Web.config文件是存在:\WinNT\Microsoft.NET\Framework\v1.0.3705中的 。 而Web应用程序配置文件Web.config则保存在各个Web应用程序中 。例如:当前网站的根目录\Inetpub\wwwroot,而当前的Web应用程序为MyApplication,则Web应用程序根目录就应为:\Inetpub\wwwroot\MyApplication 。如果你的网站有且只有一个Web应用程序,一般说来应用程序的根目录就是\Inetpub\wwwroot 。如果想添加一个Web应用程序,在IIS中添加一个具有应用程序起始点的虚拟目录就行了 。这个目录下的文件及目录将被视为一个Web应用程序 。但是,这样通过IIS添加Web应用程序是不会为你生成 Web.config文件的 。如果想创建一个带有Web.config文件的Web应用程序,需要使用Visual Studio.NET,新建一个Web应用程序项目 。 Web应用程序的配置文件Web.config是可选的,可有可无 。如果没有,每个Web应用程序会使用服务器的Web.config配置文件 。如果有,则会覆盖服务器Web.config配置文件中相应的值 。 在ASP.NET中,Web.config修改保存后会自动立刻成效,不用再像ASP中的配置文件修改后需要重新启动Web应用程序才能生效了 。 Web.config文件中的Session配置信息
这一段就是配置应用程序是如何存储Session信息的了 。我们以下的各种操作主要是针对这一段配置展开 。让我们先看看这一段配置中所包含的内容的意思 。sessionState节点的语法是这样的:
以上介绍ASP.NET Session |