2011-02-17 54 views
6

我有一個HttpModule,我想爲當前請求選擇HttpHandler,這可能嗎?另外web.config不是一個選項,因爲條件不是基於路徑或擴展名。我的搜索技巧失敗了,無論我使用什麼關鍵字,所有結果都是「IHttpHandler vs IHttpModule」。從自定義HttpModule中選擇HttpHandler

回答

4

花費一對夫婦更小時後我終於設法找到一個解決方案:

HttpContext.RemapHandler

這讓我有條件地重新映射請求T中在我的Url重寫模塊中有一個不同的處理程序。

0

您可以創建一個HttpModule,它將在客戶端(瀏覽器)的每個請求上運行。

在這裏看到他如何使用cookie通過使用HttpModule發送timezoneOFFset。

http://weblogs.asp.net/cprieto/archive/2010/01/03/handling-timezone-information-in-asp-net.aspx

下載的代碼,看到的東西是如何工作的。

肯定需要一些配置更改。

+0

我已經有一個HttpModule運行,我需要的是通過檢查這個HttpModule中的一些條件來選擇執行哪個處理程序,謝謝 – BlackSwan 2011-02-17 12:11:51

1

聽起來,對我來說,就像你正在尋找一個IHttpHandlerFactory。這可能會在你的web.config文件進行註冊(我不知道是否有可能通過IHttpModule註冊此。見:Walkthrough: Creating and Registering HTTP Handler Factories

我碰到一個有趣的帖子最近,覆蓋dynamically registering an IHttpModule來到我知道這是什麼,你的對面要找的,但你會發現很有趣

+0

IHttpHandlerFactory接近我所需要的,但仍然需要映射到`web.config` 。感謝您的建議和文章;)再過兩個小時後,我找到了我正在尋找的東西:`HttpContext.RemapHandler` – BlackSwan 2011-02-17 16:23:32