管道处理模型二

本文详细解析了HttpHandler和HttpModule的工作原理,通过实例介绍了如何自定义HttpHandler实现防盗链功能。此外,文章探讨了Webform与MVC的请求处理流程,特别是路由与HttpHandler映射的执行顺序,以及MVC路由机制和与Webform的区别。
摘要由CSDN通过智能技术生成

管道处理模型一(下称《模型一》)是本篇的基础,不妨先看一下。

一.Httphandler:

在《模型一》的demo中,新建一个webform文件,MyWebForm.aspx,内容和简单,就是一行文字。

<body>
    <form id="form1" runat="server">
        <div>
            This is MyWebForm
        </div>
    </form>
</body>

 运行结果:


再看MyWebForm.aspx.cs文件代码:

    public partial class MyWebForm : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }
    }

没有别的代码,只是实现了System.Web.UI.Page,Page又是什么呢?F12跟进去:


所以,在Webform中,我们申明的东西,写的页面,实现的业务逻辑,其实就是一个HttpHandler,而它是在PreRequestHandlerExecute 和 PostRequestHandlerExecute 这两个Event之间执行的。

这里有一个很重要的事件,MapRequestHandler,负责制定具体的handler处理请求:


它是在哪里配置的呢?

全局的webconfig中,(C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\web.config)


我们先用反编译工具,看看System.Web.UI.PageHandlerFactory:


这个核心方法 GetHandlerHelper干什么的呢?它就是传入的参数,创建一个Page。


其实从名字就能看的出来,PageHandlerFactory,PageHandler的工厂,当然输出Page。

还有web.config文件不能访问,就是因为已经配置了HttpForbiddenHandler,禁止访问。


强行访问web.config,就报错了


为什么

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值