继承IHttpModule拦截http请求

原理:浏览器请求-服务器-httpmodule-httphandler处理-浏览器


通过继承IHttpModule可以实现拦截http的请求,方面我们记录一些日志,过滤一些非法的请求,甚至实现代码的流量分流等等。


代码如下

namespace WebForm
{
    public class TestModule : IHttpModule
    {


        public void Dispose() { }
        public void Init(HttpApplication context)
        {
            context.BeginRequest += Context_BeginRequest;
        }


        private void Context_BeginRequest(object sender, EventArgs e)
        {
            HttpApplication ha = (HttpApplication)sender;
            string path = ha.Context.Request.Url.ToString();
            
            int n = path.ToLower().IndexOf("Login.aspx");


            //throw new NotImplementedException();
        }
        


    }

}


web.config

IIS 经典模式:

<configuration>
......
    <system.web>
        <httpModules>
          <add name="TestModule" type="WebForm.TestModule,WebForm"/>
        </httpModules>
    </ststem.web>
......
</configuration>


IIS 集成模式:

<configuration>
......
    <system.webServer>
        <modules>
          <add name="TestModule" type="WebForm.TestModule" />
        </modules>
    </system.webServer>
......
</configuration>

type是命名空间加类名





转载请说明出处:原文链接 http://www.nbsite.cn/hdjs/229
标签: C# 服务器维护

相关阅读:

未能加载文件或程序集“Newtonsoft.Json,Version=4.5.0.0 问题

.NET 通过 Autofac 和 DynamicProxy 实现AOP

JS中URL编码与.net URL解码

ASP.NET Core 运行原理剖析:Startup