自定義IHttpModule

HttpModule做用是 IIS將接收到的請求分發給相應的ISAPI處理前,先截獲該請求。web

經過這個咱們能夠完成不少額外功能。app

自定義IHttpModule的例子:asp.net

經過自定義HttpModule,頁面加載前劫持請求,向頁面輸入文字「MyModule」。網站

 

1.在asp.net站點下添加App_Code文件夾,而後添加MyModule類。spa

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.RegularExpressions;
using System.Web;

namespace WebApplication4
{
    public class MyModule:IHttpModule
    {
        public void Dispose()
        { 
        
        }

        public void Init(HttpApplication context)
        {
            //context.BeginRequest是開始處理HTTP管線請求時發生的事件 
            context.BeginRequest += new EventHandler(context_BeginRequest);
            //context.Error是當處理過程當中發生異常時產生的事件 
            //context.Error += new EventHandler(context_Error); 
        }

        void context_BeginRequest(object sender, EventArgs e)
        {
            HttpApplication application = (HttpApplication)sender;
            HttpContext context = application.Context;
            HttpResponse response = context.Response;
            response.Write("MyModule");
        }
    }
}

2.配置WebConfig。註冊自定義IHttpModule.net

<?xml version="1.0" encoding="utf-8"?>

<!--
  有關如何配置 ASP.NET 應用程序的詳細信息,請訪問
  http://go.microsoft.com/fwlink/?LinkId=169433
  -->

<configuration>
    <system.web>
      <compilation debug="true" targetFramework="4.5" />
      <httpRuntime targetFramework="4.5" />
    
    </system.web>
  <system.webServer>
    <modules>
      <add name="MyModule" type="WebApplication4.MyModule,WebApplication4"/>
    </modules>
  </system.webServer>

  </configuration>
type值爲DLL命名空間

3.運行網站,查看效果


4.可能遇到的錯誤:

未能從程序集「WebApplication4」中加載類型「WebApplication4.MyModule」。

請將MyModule.cs 文件生成操做設置爲:編譯。
相關文章
相關標籤/搜索