【发布时间】:2009-07-21 19:45:16
【问题描述】:
我有一个非常严格的自定义身份验证HttpModule。但我希望它只为托管请求运行(而不是静态请求)。
Asp.net MVC 自动为 IIS7 Web 服务器添加配置部分:
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<modules runAllManagedModulesForAllRequests="true">
<remove name="ScriptModule" />
<remove name="UrlRoutingModule" />
<add name="ScriptModule"
preCondition="managedHandler"
type="System.Web.Handlers.ScriptModule,..." />
<add name="UrlRoutingModule"
type="System.Web.Routing.UrlRoutingModule,..." />
</modules>
<handlers>
...
</handlers>
</system.webServer>
当我添加自己的模块时,我还设置了它的 preCondition="managedHandler",但由于父 <module> 元素上有 runAllManagedModulesForAllRequests="true",我的 preCondition 被设计忽略(正如我在 MSDN 上阅读的那样)。
当我尝试设置时:
<modules runAllManagedModulesForAllRequests="false">
我收到一个错误。
我还必须在web.config 中设置什么(其他模块)才能使此设置生效:
<modules runAllManagedModulesForAllRequests="false">
【问题讨论】:
标签: asp.net-mvc iis-7 web-config httpmodule