知识大全 ASP.NET Session 详解

Posted

篇首语:道理我都懂,可我要的不是道理,而是你的关心和体贴。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 ASP.NET Session 详解相关的知识,希望对你有一定的参考价值。

ASP.NET Session 详解  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  阅读本文章前 需要读者对以下知识有所了解 否则 阅读过程中会在相应的内容上遇到不同程度的问题

  懂得ASP/ASP NET编程   了解ASP/ASP NET的Session模型   了解ASP NET Web应用程序模型   了解ASP NET Web应用程序配置文件nfig的作用 意义及使用方法   了解Internet Information Services(以下简称IIS)的基本使用方法   了解如何在Microsoft SQL Server中创建一个数据库

  Session模型简介  Session是什么呢简单来说就是服务器给客户端的一个编号 当一台WWW服务器运行时 可能有若干个用户浏览正在运正在这台服务器上的网站 当每个用户首次与这台WWW服务器建立连接时 他就与这个服务器建立了一个Session 同时服务器会自动为其分配一个SessionID 用以标识这个用户的唯一身份 这个SessionID是由WWW服务器随机产生的一个由 个字符组成的字符串 我们会在下面的实验中见到它的实际样子

  这个唯一的SessionID是有很大的实际意义的 当一个用户提交了表单时 浏览器会将用户的SessionID自动附加在HTTP头信息中 (这是浏览器的自动功能 用户不会察觉到) 当服务器处理完这个表单后 将结果返回给SessionID所对应的用户 试想 如果没有SessionID 当有两个用户同时进行注册时 服务器怎样才能知道到底是哪个用户提交了哪个表单呢 当然 SessionID还有很多其他的作用 我们会在后面提及到

  除了SessionID 在每个Session中还包含很多其他信息 但是对于编写ASP或ASP NET的程序与来说 最有用的还是可以通过访问ASP/ASP NET的内置Session对象 为每个用户存储各自的信息 例如我们想了解一下访问我们网站的用户浏览了几个页面 我们可能在用户可能访问到每个的页面中加入

  <%If Session( PageViewed ) = Then Session( PageViewed ) = Else Session( PageViewed ) = Session( PageViewed ) + End If%>

  可能有些有些读者会问 这个看似像是数组的Session( )是哪里来的需要我定义吗实际上 这个Session对象是具有ASP解释能力的的WWW服务器的内建对象 也就是说ASP的系统中已经给你定义好了这个对象 你只需要使用就行了 其中Session( )中的 就好像变量名称 Session( )=$$中的$$就是变量的值了 你只需要写上句话 在这个用户的每个页面中都可以访问 变量中的值了

  其实ASP一共内建了 个对象 有Session Application Cookie Response Request Server等 在其他的服务器端脚本语言如JSP PHP等中也有其类似的对象 只是叫法或者使用方法上不太一样

  ASP Session的功能的缺陷  目前ASP的开发人员都正在使用Session这一强大的功能 但是在他们使用的过程中却发现了ASP Session有以下缺陷

  进程依赖性 ASP Session状态存于IIS的进程中 也就是inetinfo exe这个程序 所以当inetinfo exe进程崩溃时 这些信息也就丢失 另外 重起或者关闭IIS服务都会造成信息的丢失   Session状态使用范围的局限性 刚一个用户从一个网站访问到另外一个网站时 这些Session信息并不会随之迁移过去 例如 新浪网站的WWW服务器可能不止一个 一个用户登录之后要去各个频道浏览 但是每个频道都在不同的服务器上 如果想在这些WWW服务器共享Session信息怎么办呢 Cookie的依赖性 实际上客户端的Session信息是存储与Cookie中的 如果客户端完全禁用掉了Cookie功能 他也就不能享受到了Session提供的功能了 鉴于ASP Session的以上缺陷 微软的设计者们在设计开发 ASP NET Session时进行了相应的改进 完全克服了以上缺陷 使得ASP NET Session成为了一个更加强大的功能

  nfig文件简介  有的ASP NET程序员说 nfig文件我从来没有听说过啊 可是我写的程序不是也能很正常的运转吗是的 你说得没错 没有nfig文件程序是可以正常运行的 但是 如果你做了一个大型的网站 需要对整个网站做一些整体配置 例如整个网站的页面使用何种语言编写的 网站的安全认证模式 Session信息存储方式等 这时你就需要使用nfig文件了 虽然nfig文件中的某些选项是可以通过IIS配置的 但是如果在nfig中也有相应的设置就会覆蓋掉IIS中的配置 而且 nfig文件的最大的便利之处就是可以在ASP NET页面中通过调用System web名字空间访问nfig中的设置

  nfig有两种 分别是服务器配置文件和Web应用程序配置文件 他们都名为nfig 在这个配置文件中会保存当前IIS服务器中网页的使用哪种语言编写的 应用程序安全认证模式 Session信息存储方式的一系列信息 这些信息是使用XML语法保存的 如果想对其编辑 使用文本编辑器就行了

  其中服务器配置文件会对IIS服务器下所有的站点中的所有应用程序起作用

  在 NET Framework 中 服务器的nfig文件是存在 \\WinNT\\Microsoft NET\\Framework\\v 中的

  而Web应用程序配置文件nfig则保存在各个Web应用程序中 例如 当前网站的根目录\\Inetpub\\root 而当前的Web应用程序为MyApplication 则Web应用程序根目录就应为 \\Inetpub\\root\\MyApplication 如果你的网站有且只有一个Web应用程序 一般说来应用程序的根目录就是\\Inetpub\\root 如果想添加一个Web应用程序 在IIS中添加一个具有应用程序起始点的虚拟目录就行了 这个目录下的文件及目录将被视为一个Web应用程序 但是 这样通过IIS添加Web应用程序是不会为你生成nfig文件的 如果想创建一个带有nfig文件的Web应用程序 需要使用Visual Studio NET 新建一个Web应用程序项目

  Web应用程序的配置文件nfig是可选的 可有可无 如果没有 每个Web应用程序会使用服务器的nfig配置文件 如果有 则会覆蓋服务器nfig配置文件中相应的值

  在ASP NET中 nfig修改保存后会自动立刻成效 不用再像ASP中的配置文件修改后需要重新启动Web应用程序才能生效了

  nfig文件中的Session配置信息  打开某个应用程序的配置文件nfig后 我们会发现以下这段

  <sessionState  mode= InProc   stateConnectionString= tcpip= :   sqlConnectionString= data source= ;Trusted_Connection=yes   cookieless= false   timeout= />

  这一段就是配置应用程序是如何存储Session信息的了 我们以下的各种操作主要是针对这一段配置展开 让我们先看看这一段配置中所包含的内容的意思 sessionState节点的语法是这样的

cha138/Article/program/net/201311/11552

相关参考

知识大全 ASP.NET会话(Session)模式

ASP.NET会话(Session)模式  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 Asp.net的Session过期

Asp.net的Session过期  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  目录删除及重命

知识大全 ASP与ASP.NET转换Session数据桥的应用

ASP与ASP.NET转换Session数据桥的应用  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

知识大全 ASP.NET中的session存储模式运用

ASP.NET中的session存储模式运用  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在中

知识大全 Asp.Net处理Session失效解决方案

Asp.Net处理Session失效解决方案  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  检查

知识大全 Asp.Net中NHiernate的Session的管理

Asp.Net中NHiernate的Session的管理  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下

知识大全 Asp.net中判断一个session是否合法的方法

Asp.net中判断一个session是否合法的方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

知识大全 ASP.Net Session超时的问题

ASP.NetSession超时的问题  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &

知识大全 ASP.NET Session的七点认识

ASP.NETSession的七点认识  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  ASPNE

知识大全 ASP.Net中Session失效的一种编程思路[1]

ASP.Net中Session失效的一种编程思路[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧