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) 编辑