【问题标题】:Password protect Elmah while web application Anonymously accessible匿名访问 Web 应用程序时密码保护 Elmah
【发布时间】:2013-01-07 15:31:01
【问题描述】:

我正在将 Elmah(错误记录模块和处理程序)与 Asp.net Web 表单应用程序一起使用。 我已启用 Elmah 进行远程访问。

Elmah 是否可以像 Windows 身份验证一样进行密码保护,保持 Web 表单应用程序匿名访问?

【问题讨论】:

  • 您是否实施了角色?此外,您需要快速锁定它。 Elmah 错误可能会暴露有关您网站运作方式的敏感细节。
  • @MikeSmithDev,不,还没有实现角色,也不想使用 .net Membership 提供程序,因为 Web 应用程序可以通过默认 Windows 身份验证匿名访问(这是 Web 项目的默认设置)。跨度>

标签: asp.net authentication elmah


【解决方案1】:

以下解决方案适用于窗口“角色”。但无法直接访问用户。

  <location path="admin" >
    <system.web>
      <httpHandlers>
        <add verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" />
      </httpHandlers>
      <authorization>
        <allow roles="WindowsGroupName" />
        <deny users="*" />  
      </authorization>
    </system.web>
  </location>

注意:Elmah 也可以按照Phil Haack 的指示通过 root/admin/elmah.axd 服务来保护。

【讨论】:

  • 在我的示例中,除了用户名之外,可能还需要域,如 DOMAIN\USERNAME
  • @MikeSmithDev,我尝试在同一个域中生活,但不确定 Elmah 是否旨在与用户合作。您是否在 Internet 上找到任何资源或曾经尝试过自己具体化您的解决方案?我在任何解释 Elmah 以允许远程访问的地方都看到过角色。
  • 我在本地测试过,效果很好。虽然在我的实时服务器上我使用角色(而不是 Windows 身份验证),但我没有进行现场测试。看到你能与角色一起工作,你就得到了我的 +1。
  • 似乎另一个 SO 帖子让它与用户合作:stackoverflow.com/questions/7005389/…
  • @MikeSmithDev,我以前看过这个例子,但是,解决方案建议实现 BeginRequest() 方法,因为用户和角色在数据库而不是窗口中。我正在尝试使用 Windows 身份验证对在 Web 服务器上创建的用户进行身份验证。仍在寻找基于 Windows 用户的 Elmah 成功案例。
【解决方案2】:

您可以通过在 web.config 中添加允许的用户来保护 Elmah:

<location path="elmah.axd" inheritInChildApplications="false">
    <system.web>
       <authorization>   
         <allow users="YOUR-WINDOWS-USERNAME" />
         <deny users="*" />
       </authorization>
    </system.web>

    ...other config settings
</location>

假设您使用的是 Windows 身份验证

<authentication mode="Windows">

【讨论】:

    猜你喜欢
    • 2016-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-22
    • 1970-01-01
    • 2012-02-17
    • 2023-03-10
    相关资源
    最近更新 更多