网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 大学论文导航 设计下载 最新论文 下载排行 原创论文 论文源代码
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > ASP.net > 正文

ASP.NET的HTTP模块和处理程序之对话状态

来源:http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 13/01/09

HTTP处理程序中的对话状态

维护对话状态是Web应用程序执行的最通常的事务。HTTP处理程序也需要访问这些对话状态。但是HTTP处理程序的默认设置是没有激活对话状态的。为了读取和/或写入状态数据,需要HTTP处理程序实现下面的接口之一:

· IRequiresSessionState

· IReadOnlySessionState.

当HTTP处理程序需要读写对话数据的时候,它必须实现IRequiresSessionState接口。如果它只读取对话数据,实现IReadOnlySessionState接口就可以了。

这两个接口都是标记接口,并没有包含任何方法。因此,如果你希望激活NewHandler处理程序的对话状态,要像下面的代码一样声明NewHandler类:

  1. public class NewHandler : IHttpHandler, IRequiresSessionState 

HTTP模块

HTTP模块是实现了System.Web.IhttpModule接口的.NET组件。这些组件通过在某些事件中注册自身,把自己插入ASP.NET请求处理管道。当这些事件发生的时候,ASP.NET调用对请求有兴趣的HTTP模块,这样该模块就能处理请求了。

HTTP模块实现了IhttpModule接口的下面一些方法:

方法名称描述
Init这个方法允许HTTP模块向HttpApplication 对象中的事件注册自己的事件处理程序。
Dispose这个方法给予HTTP模块在对象被垃圾收集之前执行清理的机会。

HTTP模块可以向System.Web.HttpApplication对象暴露的下面一些方法注册:

事件名称描述
AcquireRequestState当ASP.NET运行时准备好接收当前HTTP请求的对话状态的时候引发这个事件。
AuthenticateRequest当ASP.NET 运行时准备验证用户身份的时候引发这个事件。
AuthorizeRequest当ASP.NET运行时准备授权用户访问资源的时候引发这个事件。
BeginRequest当ASP.NET运行时接收到新的HTTP请求的时候引发这个事件。
Disposed当ASP.NET完成HTTP请求的处理过程时引发这个事件。
EndRequest把响应内容发送到客户端之前引发这个事件。
Error在处理HTTP请求的过程中出现未处理异常的时候引发这个事件。
PostRequestHandlerExecute在HTTP处理程序结束执行的时候引发这个事件。
PreRequestHandlerExecute在ASP.NET开始执行HTTP请求的处理程序之前引发这个事件。在这个事件之后,ASP.NET 把该请求转发给适当的HTTP处理程序。
PreSendRequestContent在ASP.NET把响应内容发送到客户端之前引发这个事件。这个事件允许我们在内容到达客户端之前改变响应内容。我们可以使用这个事件给页面输出添加用于所有页面的内容。例如通用菜单、头信息或脚信息。
PreSendRequestHeaders在ASP.NET把HTTP响应头信息发送给客户端之前引发这个事件。在头信息到达客户端之前,这个事件允许我们改变它的内容。我们可以使用这个事件在头信息中添加cookie和自定义数据。
ReleaseRequestState当ASP.NET结束所搜有的请求处理程序执行的时候引发这个事件。
ResolveRequestCache我们引发这个事件来决定是否可以使用从输出缓冲返回的内容来结束请求。这依赖于Web应用程序的输出缓冲时怎样设置的。
UpdateRequestCache当ASP.NET完成了当前的HTTP请求的处理,并且输出内容已经准备好添加给输出缓冲的时候,引发这个事件。这依赖于Web应用程序的输出缓冲是如何设置的。

除了这些事件之外,我们还可以使用四个事件。我们可以通过实现Web应用程序的global.asax文件中一些方法来使用这些事件。

这些事件是:

· Application_OnStart

当第一个请求到达Web应用程序的时候引发这个事件。

· Application_OnEnd

准备终止应用程序之前引发这个事件。

· Session_OnStart

用户对话的第一个请求引发这个事件。

· Session_OnEnd

放弃对话或者对话超期的时候引发这个事件。

网学推荐

免费论文

原创论文

设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号