在我们的开发网络服务器上安装了Elmah ..我们可以限制远程访问它的人吗?即使我们硬编码用户名/密码(哈希?)还是仅通过IP?
答案 0 :(得分:24)
有两种设置,一种是<elmah>
:
<elmah>
<security allowRemoteAccess="1"/>
</elmah>
另一种是,如果您允许远程访问,则可以使用<location>
来控制访问者:
<location path="elmah.axd">
<system.web>
<authorization>
<allow roles="Administrator"/>
<deny users="*"/>
</authorization>
</system.web>
</location>
您可以在</runtime>
标记
答案 1 :(得分:4)
我知道它有点晚了,但是为了将来参考,除了通过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>
答案 2 :(得分:2)
您可以在web.config中确保这一点(如果您确实希望生产网站上的任何人都可以访问它) 看到: How to secure Elmah.axd?
显然要更改你的&lt; allow users = ....&gt;到适当的值