当前位置: 首页 > news >正文

网站开发毕业设计报告百度搜索浏览器

网站开发毕业设计报告,百度搜索浏览器,com网站注册,深圳做网站那家公司好HttpModule是向实现类提供模块初始化和处置事件。当一个HTTP请求到达HttpModule时,整个ASP.NET Framework系统还并没有对这个HTTP请求做任何处理,也就是说此时对于HTTP请求来讲,HttpModule是一个HTTP请求的“必经之路”,所以可以在…

HttpModule是向实现类提供模块初始化和处置事件。当一个HTTP请求到达HttpModule时,整个ASP.NET Framework系统还并没有对这个HTTP请求做任何处理,也就是说此时对于HTTP请求来讲,HttpModule是一个HTTP请求的“必经之路”,所以可以在这个HTTP请求传递到真正的请求处理中心(HttpHandler)之前附加一些需要的信息在这个HTTP请求信息之上,或者针对截获的这个HTTP请求信息作一些额外的工作,或者在某些情况下干脆终止满足一些条件的HTTP请求,从而可以起到一个Filter过滤器的作用。


1、asp.net的HTTP请求处理过程

 

ASPNETHTTP

 

说明: 
(1)、客户端浏览器向服务器发出一个http请求,此请求会被inetinfo.exe进程截获,然后转交给aspnet_isapi.dll进程,接着它又通过Http Pipeline的管道,传送给aspnet_wp.exe这个进程,接下来就到了.net framework的HttpRunTime处理中心,处理完毕后就发送给用户浏览器。 
(2)、当一个http请求被送入到HttpRuntime之后,这个Http请求会继续被送入到一个被称之为HttpApplication Factory的一个容器当中,而这个容器会给出一个HttpApplication实例来处理传递进来的http请求,而后这个Http请求会依次进入到如下几个容器中:HttpModule --> HttpHandler Factory --> HttpHandler。当系统内部的HttpHandler的ProcessRequest方法处理完毕之后,整个Http Request就被处理完成了,客户端也就得到相应的东东了。 
(3)完整的http请求在asp.net framework中的处理流程: 
HttpRequest-->inetinfo.exe->ASPNET_ISAPI.DLL-->Http Pipeline-->ASPNET_WP.EXE-->HttpRuntime-->HttpApplication Factory-->HttpApplication-->HttpModule-->HttpHandler Factory-->HttpHandler-->HttpHandler.ProcessRequest() 

也就是说一个HTTP请求在HttpModule容器的传递过程中,会在某一时刻(ResolveRequestCache事件)将这个HTTP请求传递给HttpHandler容器。在这个事件之后,HttpModule容器会建立一个HttpHandler的入口实例,但是此时并没有将HTTP请求控制权交出,而是继续触发AcquireRequestState事件以及PreRequestHandlerExcute事件。在PreRequestHandlerExcute事件之后,HttpModule窗口就会将控制权暂时交给HttpHandler容器,以便进行真正的HTTP请求处理工作。

而在HttpHandler容器内部会执行ProcessRequest方法来处理HTTP请求。在容器HttpHandler处理完毕整个HTTP请求之后,会将控制权交还给HttpModule,HttpModule则会继续对处理完毕的HTTP请求信息流进行层层的转交动作,直到返回到客户端为止。 
PS:红色的HttpApplication实例在HttpModule的Init方法中会用到。


(4)如果想在中途截获一个httpRequest并做些自己的处理,就应该在HttpRuntime运行时内部来做到这一点,确切的说是在HttpModule这个容器中来实现。

 

2、HttpModule工作原理


     负责监听HttpRequest,同时对HttpRequest增添或者过滤掉一部分内容。也就是说,当一个HTTP请求到达HttpModule时,整个ASP.NET Framework系统还并没有对这个HTTP请求做任何处理,也就是说此时对于HTTP请求来讲,HttpModule是一个HTTP请求的“必经之路”,所以可以在这个HTTP请求传递到真正的请求处理中心(HttpHandler)之前附加一些需要的信息在这个HTTP请求信息之上,或者针对截获的这个HTTP请求信息作一些额外的工作,或者在某些情况下干脆终止满足一些条件的HTTP请求,从而可以起到一个Filter过滤器的作用。 
HttpModule实现了接口IHttpModule,我们可以自定义实现该接口的类,从而取代HttpModule。 
asp.net默认的HttpModule如下:

        System.Web.SessionState.SessionStateModule;
        System.Web.Security.WindowsAuthenticationModule;
        System.Web.Security.FormsAuthenticationModule;
        System.Web.Security.PassportAuthenticationModule;
        System.Web.Security.UrlAuthorizationModule;
        System.Web.Security.FileAuthorizationModule;

创建一个自定义的http module类
1.如果你的站点还没有app_code文件夹,创建之.
2.在该文件夹下创建一个helloworldmodule.cs文件
3.添加以下代码到cs文件

public class HelloWorldModule : IHttpModule
{
public HelloWorldModule()
{
}

public String ModuleName
{
get { return "HelloWorldModule"; }
}

// In the Init function, register for HttpApplication 
// events by adding your handlers.
public void Init(HttpApplication application)
{
application.BeginRequest +=
(new EventHandler(this.Application_BeginRequest));
application.EndRequest +=
(new EventHandler(this.Application_EndRequest));
}

private void Application_BeginRequest(Object source,
EventArgs e)
{
// Create HttpApplication and HttpContext objects to access
// request and response properties.
HttpApplication application = (HttpApplication)source;
HttpContext context = application.Context;
context.Response.Write("<h1><font color=red>
HelloWorldModule: Beginning of Request
</font></h1><hr>");
}

private void Application_EndRequest(Object source, EventArgs e)
{
HttpApplication application = (HttpApplication)source;
HttpContext context = application.Context;
context.Response.Write("<hr><h1><font color=red>
HelloWorldModule: End of Request</font></h1>");
}

public void Dispose()
{
}
}

在web.config注册http module
添加以下代码
<configuration>
<system.web>
<httpModules>
<add name="HelloWorldModule" type="HelloWorldModule"/>
</httpModules>
</system.web>
</configuration>

以上代码注册了module的类名和名字

测试自定义module
1.创建default.aspx页面
2.在浏览中请求页面.http module在响应的开始和结尾附加了一个字符串.有任何请求的文件被指定到asp.net处理时,是这个module将自动的运行. 


转载于:https://www.cnblogs.com/bktmkd/archive/2012/05/07/2666015.html

http://www.lbrq.cn/news/2348857.html

相关文章:

  • 网站建设方式与信息化百度seo优化培训
  • 室内装修效果图网站有哪些怎么推广平台
  • 哪些网站建设公司好市场营销培训课程
  • 泸州网站公司新闻危机公关
  • 台湾做电商网站计算机基础培训机构
  • 网站动态添加广告怎么做的关键词查询工具
  • 百度站长平台网站提交全网引流推广
  • 长沙网站 微信建设同城推广
  • 个人怎么注册一个品牌2022年seo还值得做吗
  • 电子商务网站建设体会与收获网页自动点击软件
  • 最新开公司的基本流程及费用百度seo网站优化 网络服务
  • 烟台学校网站建设企业培训课程设计
  • asp双语网站后台怎么用广州外包网络推广公司
  • 做贸易把产品放到哪个网站好呢成都计算机培训机构排名前十
  • 太仓智能网站开发查询收录
  • 南京一站式工程装饰装修网站每日财经最新消息
  • wordpress框架文件赣州seo排名
  • 做网站时 404网页如何指向国家新闻最新消息今天
  • 品牌营销型网站作用腾讯云服务器
  • 网站界面设计起着决定性作用电脑学校培训
  • 奥特蛋的做网站友链购买有效果吗
  • 长春网站建设 信赖吉网传媒搜索引擎优化技巧
  • vps wordpress 卸载汉中网站seo
  • 网站建设制作方案杭州线上推广
  • wordpress网站上传到服务器品牌运营策略
  • 陕西省住房和城市建设厅网站公众号如何推广引流
  • wordpress读取字体seo高效优化
  • 群晖 wordpress 编辑宁波seo推广服务电话
  • 上饶哪有做网站的公司佛山做网站建设
  • 网站日志分析的意义谷歌账号注册入口官网
  • Java 集合 示例
  • wkhtmltopdf导出pdf调试参数
  • 死锁问题以及读写锁和自旋锁介绍【Linux操作系统】
  • 1.easypan-登录注册
  • 【亲测有效】ubuntu20.04服务器新建用户+vnc配置教程
  • 从12kW到800V,AI服务器电源架构变革下,功率器件如何解题?