【发布时间】:2018-05-25 19:42:06
【问题描述】:
在提供页面之前,我需要进行一些验证。如果验证OK,请求应该遵循它的正常流程;如果不是,它必须重定向到另一个页面,并且在该页面中用户会看到类似协议的内容,接受它,然后页面应该正常加载。
所以,我有一个应用程序,它有一些关于 ASP Classic 的页面和一些在 ASP.NET 中的页面。我要做的是添加一个 HttpModule 来处理所有请求以执行一些逻辑以根据结果重定向到另一个页面。
因此,在 IIS 中,ASP 应用程序位于其他应用程序之上,而在该应用程序内部,我还有其他 .NET 应用程序。
我创建了一个 HttpModule 进行测试,注册了 DLL 并在 ASP 应用程序级别的 web.config 文件中添加了相应的配置。
这是我添加到 web.config 文件中的块
<system.web>
<customErrors mode="Off"></customErrors>
<httpModules>
<add name="TestHttpModule" type="TestHttpModule.TestHttpModule, TestHttpModule,Version=1.0.0.0, Culture=neutral, PublicKeyToken=d76c51db0a9391cf"/>
</httpModules>
</system.web>
该模块仅在请求 ASPX 页面时触发,但在请求 ASP 页面时不会触发。
那么是否可以为 ASP 页面使用自定义 HttpModule 还是不可以?
如果没有,您知道其他方法吗?
应用程序在经典模式下使用其应用程序池。
提前致谢!
【问题讨论】:
-
尝试将您的模块添加到
system.webServer。这些模块会针对所有请求触发(除非您明确告诉他们不要这样做)。 -
我的 web.config 上也有该配置,但它没有解决问题:/
标签: c# asp.net asp-classic iis-8 httpmodule