2011-02-17 65 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