如何限制对Elmah的远程访问?

Pur*_*ome 12 .net asp.net elmah

在我们的开发Web服务器上安装Elmah ..我们可以限制远程访问它的人吗?即使我们硬编码用户名/密码(哈希?)还是仅通过IP?

rtp*_*rry 25

有两种设置,一种是<elmah>:

<elmah>
    <security allowRemoteAccess="1"/>
</elmah>
Run Code Online (Sandbox Code Playgroud)

另一种是,如果您允许远程访问,您可以使用<location>控制谁访问它:

  <location path="elmah.axd">
    <system.web>
      <authorization>
        <allow roles="Administrator"/>
        <deny users="*"/>
      </authorization>
    </system.web>
  </location>
Run Code Online (Sandbox Code Playgroud)

您可以在</runtime>标记之后将其放在主web.config中


Tho*_*dal 5

我知道有点晚了,但为了将来的参考,它不仅仅是通过allowRemoteAccess. 几个月前,在撰写这篇博文《ELMAH 安全性和allowRemoteAccess》时,我真的很关心保护 ELMAH 的安全。

我不认为这个问题的任何答案都是错误的,但是根据所使用的技术,还有更多选项可用。如果运行 ASP.NET,通过authorizationelement 进行保护绝对是最佳选择。不过,现在很多人都在运行 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>
Run Code Online (Sandbox Code Playgroud)