如何确保Elmah与ASP.NET和IIS 5.1 URL路由一起安全工作

3
这个问题是基于以下问题的: 如何使Elmah与ASP.NET和IIS 5.1 URL路由一起工作 那里提出的解决方案有效,只要elmah.axd不在站点的根目录下。如果您想像这里博客中所述那样保护站点呢? 安全地实现ELMAH以进行即插即用的错误日志记录
将elmah.axd移动到/admin/elmah.axd会破坏Fix IIS 5x通配符映射模块。
我的解决方法只是保护“elmah.axd”而不是“admin”,例如:
<location path="elmah.axd">
  <system.web>
    <authorization>
      <deny users="?"/>
    </authorization>
  </system.web>
</location>

虽然这个方法可行,但我觉得一定有更加优雅的解决方案。你有什么想法吗?
3个回答

3

您还可以将 elmah.axd 重命名为更不明显的名称。该名称在您的web.config中是可配置的。


1
要补充一下@Todd Smith的回答:
如果你想重新命名elmah.axd,你只需要在处理程序中更改名称即可。
<add name="Elmah" path="ANY_NAME_YOU_LIKE.axd" verb="POST,GET,HEAD" type="Elmah.ErrorLogPageFactory, Elmah"/>

1

这是我在项目中使用的相同解决方案。任何更“优雅”的东西都会更加复杂和不必要。

它能够完成任务并且简单易懂,如果我是你,我会保持它不变 :-)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接