採用HttpModules來重寫URLs(實踐篇)

2021-04-03 01:10:57 字數 864 閱讀 8775

首先寫乙個處理urls重寫的類,並且這個類必須繼承ihttphandler介面,以的程式為例:

public void dispose()

}urlrewritemodule類就是處理urls重寫的類,繼承ihttphandler介面,實現該介面的兩個方法,init和dispose。在init方法裡註冊自己定義的方法,如上例所示:

content.beginrequest +=new eventhandler(content_beginrequest);

beginrequest是乙個事件,在收到新的http請求時觸發,content_beginrequest就是觸發時處理的方法。另外說明一點,httpmodules能註冊的方法還有很多,如:endrequest、error、disposed、presendrequestcontent等等。

在content_beginrequest方法中具體處理urls重寫的細節,比如,將

http://www.cnblogs.com/rrooyy/archive/2004/10/24/56041.html 重寫為 http://www.cnblogs.com/archive.aspx?user=rrooyy&id=56041 (注:我沒有仔細看dudu的程式,這裡只是舉例而已)。然後將重新生成的url用httpcontext.rewritepath()方法重寫即可,如下:

最後要web.config中註冊重寫urls的類,格式如下:

classname,assemblyname" name="modulename"/>

modulename"/>

採用標籤可以註冊乙個類;可以移除某個類,如果某個子目錄不希望繼承父目錄的某個http module註冊,就需要使用這個標籤;可以移除所有的http module註冊。

採用HttpModules來重寫URLs(實踐篇)

首先寫乙個處理urls重寫的類,並且這個類必須繼承ihttphandler介面,以的程式為例 public void dispose urlrewritemodule類就是處理urls重寫的類,繼承ihttphandler介面,實現該介面的兩個方法,init和dispose。在init方法裡註冊自己...

採用HttpModules來重寫URLs(實踐篇)

首先寫乙個處理urls重寫的類,並且這個類必須繼承ihttphandler介面,以的程式為例 public void dispose urlrewritemodule類就是處理urls重寫的類,繼承ihttphandler介面,實現該介面的兩個方法,init和dispose。在init方法裡註冊自己...

採用HttpModules來重寫URLs(實踐篇)

首先寫乙個處理urls重寫的類,並且這個類必須繼承ihttphandler介面,以的程式為例 public void dispose urlrewritemodule類就是處理urls重寫的類,繼承ihttphandler介面,實現該介面的兩個方法,init和dispose。在init方法裡註冊自己...