【发布时间】:2011-07-21 15:46:26
【问题描述】:
在我们的开发网络服务器上安装了 Elmah .. 我们可以限制谁远程访问它吗?即使我们硬编码用户名/密码(散列?)还是仅通过 IP?
【问题讨论】:
在我们的开发网络服务器上安装了 Elmah .. 我们可以限制谁远程访问它吗?即使我们硬编码用户名/密码(散列?)还是仅通过 IP?
【问题讨论】:
有两种设置,一种在<elmah>:
<elmah>
<security allowRemoteAccess="1"/>
</elmah>
另一个是,如果你允许远程访问,你可以使用<location>来控制谁访问它:
<location path="elmah.axd">
<system.web>
<authorization>
<allow roles="Administrator"/>
<deny users="*"/>
</authorization>
</system.web>
</location>
您可以将它放在主 web.config 中,紧跟在 </runtime> 标记之后
【讨论】:
</runtime> 标签之前。这为我提供了一个一致的位置来查找这些访问控制标签(我通常会为网站的管理区域和任何其他受保护的系统提供一个)。无论如何,感谢您的反馈,希望您的 cmets 能帮助人们在遇到错误之前内化这里所说的内容。
我知道这有点晚了,但为了将来参考,它不仅仅是通过allowRemoteAccess 开放访问。几个月前,在写这篇博文ELMAH security and allowRemoteAccess explained 时,我真的很想保护 ELMAH。
我认为关于这个问题的任何答案都没有错,但是根据所使用的技术,还有更多可用的选项。如果运行 ASP.NET,通过authorization 元素进行保护绝对是要走的路。不过,现在很多人都在运行 MVC。 Alexander Beletsky 写了一个很棒的包,叫做Elmah.MVC。使用这个包,使用 MVC 中的 ELMAH 的所有问题都将迎刃而解。使用该软件包时,保护 ELMAH 也很容易,使用如下的一些自定义应用设置:
<appSettings>
<add key="elmah.mvc.requiresAuthentication" value="true" />
<add key="elmah.mvc.allowedRoles" value="Admin" />
<add key="elmah.mvc.allowedUsers" value="Thomas" />
</appSettings>
【讨论】:
您可以在 web.config 中保护它(如果您确实希望生产站点上的任何人都可以访问它) 看: How to secure Elmah.axd?
显然将您的
【讨论】: