上一页 1 2 3 4 5 6 7 8 9 ··· 14 下一页
  2011年4月25日
摘要: 综合各方面考虑,有3种会话状态管理的自定义方案: 1. 保留默认的会话模块,但编写自定义的状态提供程序来更改存储介质。这样,我们还有机会重写一些用于在存储与Session之间运载会话数据的辅助类。 2. 保留默认的会话模块,但替换会话ID生成器。 3. 将默认的会话状态模块替换成自己的。这种方法提供了最好的灵活性,但也最为复杂,建议仅当的确必要且知道确切的实现方法才使用这种方案。构建自定的会话状态提供程序 会话状态提供程序是一种组件,负责为当前会话数据进行服务。当请求需要状态信息时,该组件便会被调用,从给定的存储介质中获取数据,并返回给主调模块。在请求结束时,也会被调用,以便将提供的数据写入. 阅读全文
posted @ 2011-04-25 00:14 辛勤的代码工 阅读(603) 评论(0) 推荐(0) 编辑
  2011年4月24日
摘要: 会话状态处理任务可用三个步骤来概括:分配会话ID,从提供程序获取数据,将数据填充到页面的上下文中。 会话状态模块负责管理所有这些任务的执行。为此,它还需要利用两个组件:会话ID生成器和会话状态提供程序。在ASP.NET 2.0和更高版本中,二者可以由自定义的组件代替。会话的标识 每个活动的ASP.NET会话由15个字节(120位)的字符串标识,其中只包含符合URL标准的字符。会话ID是随机生成的,且是唯一的,以避免恶意攻击和数据冲突。通过某种算法从一个现有的ID推算出一个有效的会话ID几乎是不可能的。会话ID的生成 会话ID的长度为15个字节,由“随机数字生成器(RNG)”密码提供程序生成。. 阅读全文
posted @ 2011-04-24 22:22 辛勤的代码工 阅读(760) 评论(0) 推荐(0) 编辑
摘要: 对于会话状态值的存储,HttpSessionState类提供了一个基于字典的模型。只有同一会话上下文中的请求(即由同一个用户发出的多个页面请求)才可以访问会话状态。会话状态的存储和发布方式有很多,其中包括在Web Farm和Web Garden环境下的。但在默认情况下,会话状态由ASP.NET工作线程持有。 会话状态的可扩展模型提供了两种方案: 1. 可对ASP.NET现有的会话状态机制进行局部的自定义(如:创建Oracle会话提供程序或创建能控制ID生成的模块)。 2. 可以将整个标准的会话状态HTTP模块替换成其他的自定义会话状态HTTP模块。 第一种方案更容易实现,但可自定义的功能比较. 阅读全文
posted @ 2011-04-24 11:47 辛勤的代码工 阅读(1873) 评论(0) 推荐(0) 编辑
摘要: ASP.NET提供了4个层面上的状态管理工具:应用程序、会话、页面和请求,每层都有专用的容器对象。应用程序的状态 下表总结了各状态对象的主要功能: 尽管HttpApplicationState和HttpSessionState对象与ASP内部对象Application和Session的名称不同,但在状态方面,它们的功能完全一致。 HttpApplicationState对象可使应用程序中的所有请求处理程序获得一种字典形式的存储对象。所有HTTP处理程序和模块都能够存储和检索应用程序字典中的值。应用程序状态只在当前应用程序的上下文中可见,位于同一系统中的其他应用程序无法访问或更改其中的值。 当. 阅读全文
posted @ 2011-04-24 10:34 辛勤的代码工 阅读(798) 评论(0) 推荐(0) 编辑
摘要: HttpRequest对象包含了传入Web请求的HTTP数据包中包含的所有信息。HTTP标头、查询字符串、表单的输入字段、路径和URL信息的内容,被分别组织在不同的集合以及其他特殊对象中,能以编程方式便捷地访问。当ASP.NET开始处理Web请求时,HttpRequest对象会被填充,并通过HttpContext的Request属性暴露出来。HttpRequest类的属性 HttpRequest类的属性可被分为三类:请求类型、客户端数据和连接有关请求的信息 下表列出了有关请求信息的属性: HttpBrowserCapabilities对象包含有关浏览器功能的大量信息,包括是否支持Active. 阅读全文
posted @ 2011-04-24 02:16 辛勤的代码工 阅读(867) 评论(1) 推荐(0) 编辑
摘要: 在ASP.NET中,HTTP响应信息由HttpResponse类进行封装。该类的实例创建于处理请求的HTTP管道建立时,之后该实例被链接到与请求关联的HttpContext对象,通过其Response属性暴露。虽然用户定义的ASP.NET代码不需使用HttpResponse的构造函数,但此函数可帮助我们理解该类的本质:public HttpResponse(TextWriter writer); 可以看出,该构造函数接受一个TextWriter对象,该对象用于存储响应文本。对Response.Write的调用都被转换为对TextWriter对象的调用。HttpResponse类的属性 下表列. 阅读全文
posted @ 2011-04-24 01:37 辛勤的代码工 阅读(798) 评论(0) 推荐(0) 编辑
摘要: ASP中Server对象的功能,在ASP.NET中由HttpServerUtility类来实现。该类型的实例在AS.NET开始处理请求时创建,之后被存储在请求上下文中。HttpServerUtility拥有大量辅助方法,通过HttpContext对象的Server属性暴露给模块或处理程序(包括global.asax、页面和Web服务)。HttpServerUtility类的属性 该类提供了两个属性:MachineName和ScriptTimeout。MachineName属性能够返回当前服务器的计算机名称。ScriptTimeout属性获取或设置处理请求占用的最长时间(以秒为单位)。该属性接. 阅读全文
posted @ 2011-04-24 00:11 辛勤的代码工 阅读(817) 评论(0) 推荐(0) 编辑
  2011年4月23日
摘要: 在请求执行链的各个阶段中,会有一个对象在各个对象间进行传递,这就是HttpContext对象。HttpContext封装了ASP.NET要处理的单个HTTP请求的所有信息。在请求处理机制建立时,HttpContext类由HttpRuntime对象实例化。接着,该对象会经历请求生存期的各个阶段。如下图所示:HttpContext类的属性 下表列出了HttpContext类的所有属性。 Current属性是一个十分常用的静态成员,返回当前被处理请求的HttpContext对象。 Items属性是一个字典对象(更准备地说,它是一个哈希表),使数据可以在某个请求所涉及的模块和处理程序间共享。这些数据. 阅读全文
posted @ 2011-04-23 22:29 辛勤的代码工 阅读(743) 评论(0) 推荐(0) 编辑
摘要: 通过global.asax,Web应用程序能够处理某些由ASP.NET运行库或已注册的HTTP模块引发的应用程序级事件。为使该文件中的内容生效,global.asax文件必须置于应用程序的根目录下。global.asax的编译 如果定义了global.asax文件,那么在应用程序启动时,该文件会被解析为源类,并会被编译。下面是ASP.NET根据global.asax文件生成的C#代码:namespace ASP{ public class global_asax : System.Web.HttpApplication { ...... }} 该类称为ASP.global_asax,派生自H. 阅读全文
posted @ 2011-04-23 15:31 辛勤的代码工 阅读(930) 评论(0) 推荐(0) 编辑
摘要: 应用程序的初始化 一旦请求上下文被创建,HttpRuntime类便会建立处理请求的ASP.NET应用程序对象。ASP.NET应用程序由许多HttpApplication类的实例组成。HttpApplication是根据global.asax文件派生的对象,能够处理转到特定虚拟文件夹的所有HTTP请求。 运行中的ASP.NET应用程序完全由其虚拟文件夹表示的,且global.asax文件是可选的。虚拟文件夹的名称是一种键,HTTP运行库通过它来确定应该由哪个应用程序来处理传入的请求。 请求会被分配给某个HttpApplication对象,此后便由这个选定的对象来负责管理请求的整个生存期。只有在请 阅读全文
posted @ 2011-04-23 10:20 辛勤的代码工 阅读(504) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 9 ··· 14 下一页