13

在我的 web.config 文件中,我拥有运行 elmah 所需的所有对 elmah 的引用。除了这部分代码:

<location path="elmah.axd">
    <system.web>
        <authorization>
            <allow roles="admin" />
            <deny users="*" />
        </authorization>
    </system.web>
</location>

ReSharper 或 Visual Studio 都给了我错误:

位置元素未使用:在 elmah.axd 路径中找不到项目:未找到 Web 项目的路径\elmah.axd

我从 NuGet 安装了 elmah 包并保存了 dll,当我转到站点的根目录并键入 root/elmah.axd 时,我可以访问 elmah 日志;但是,我需要将这些日志的访问权限限制为管理员。

我有两个用户:管理员和用户我只希望具有管理员角色的用户访问 elmah 日志。

我错过了这个难题的一部分吗?

4

1 回答 1

19

没有错……只是 reSharper 有点傻。因为它找不到具有该名称的物理文件,它认为它不存在并给你你所看到的错误。

您可以使用 ReSharper 禁用注释来忽略它,如下所示:

<!-- ReSharper disable WebConfig.RedundantLocationTag -->
<!-- ReSharper disable WebConfig.WebConfigPathWarning -->
<location path="elmah.axd">
<!-- ReSharper restore WebConfig.WebConfigPathWarning -->
  <system.web>
    <authorization>
      <allow roles="admin" />
      <deny users="*" />
    </authorization>
  </system.web>
</location>
<!-- ReSharper restore WebConfig.RedundantLocationTag -->

但它看起来很丑;-)

于 2013-03-05T20:56:53.227 回答