我正在寻找一种更精确的解决方案来处理 ASP.NET 生命周期对静态内容的请求,而无需设置runAllManagedModulesForAllRequests
为真。
据我所知的效果是runAllManagedModulesForAllRequests = "true"
每个模块的前置条件属性将设置为""
.
问题:
- 我必须保护 Web 应用程序子文件夹中的静态内容免遭未经授权的访问
- 为了在 ASP.NET 生命周期中包含对这些静态内容的请求,从而触发一些事件,我设置了
runAllManagedModulesForAllRequests
to true
在 web.config 中。
- 由于此解决方案转动了大轮子,并且整个应用程序的所有托管模块都会受到影响,因此我正在寻找一种更适合的解决方案,仅限于需要此行为的子文件夹。
- 我需要 IIS6 和 II7 的解决方案
问题一:
需要重置哪些模块的前提条件(precondition = ""
)来触发 global.asax.cs 事件(例如Application_BeginRequest
)对于静态内容的请求?
问题2:
是否可以将此请求处理限制为对单个子文件夹的请求(例如,也许可以通过在此子文件夹中放置经过调整的 web.config,调整主 web.config,...)
任何建议,将不胜感激。谢谢。
您是否考虑过为 global.asax 的正确事件注册自定义 HttpModule,然后仅使用子目录启用 HttpModulelocation
main 中的属性web.config
本身?这只是一个可能的解决方案的想法 - 我还没有仔细考虑过..
<location path="subDirectoryPath">
<system.web>
<httpmodules>
<add type="MyCustomModule.Name" name="MyCustomModule" />
</httpmodules>
</system.web>
</location>
EDIT:
您可能必须覆盖您的 web.config,并在其中引入所有 httpModule 部分,然后在正确的前提下将自定义模块插入到正确的位置。
这是为了避免设置runAllManagedModulesForAllRequests
to true
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)