【问题标题】:ELMAH - MVC 3 - 403 - Forbidden: Access is deniedELMAH - MVC 3 - 403 - 禁止:访问被拒绝
【发布时间】:2012-11-25 19:16:22
【问题描述】:

我已经使用 NuGet 安装了Elmah for MVC,我能够在数据库中登录成功错误。 唯一的问题是我无法访问/elmah URL 来访问错误日志页面。

这是我配置的一部分,如果我有任何配置错误,请您指出吗?

谢谢

错误

403 - 禁止访问:访问被拒绝。
您无权使用您提供的凭据查看此目录或页面。

在我的web.config

  <appSettings>
    <add key="webpages:Version" value="1.0.0.0" />
    <add key="ClientValidationEnabled" value="true" />
    <add key="UnobtrusiveJavaScriptEnabled" value="true" />
    <add key="elmah.mvc.disableHandler" value="false" />
    <add key="elmah.mvc.disableHandleErrorFilter" value="false" />
    <add key="elmah.mvc.requiresAuthentication" value="true" />
    <add key="elmah.mvc.allowedRoles" value="Administrator" />
    <add key="elmah.mvc.route" value="elmah" />
  </appSettings>

global.asax:

    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("elmah.axd");
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            "Default", // Route name
            "{controller}/{action}/{id}", // URL with parameters
            new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
        );
    }

【问题讨论】:

  • 您是如何处理身份验证和授权的?

标签: asp.net-mvc elmah elmah.mvc


【解决方案1】:

(这一切都来自文档/入门)

您不需要以下行:

routes.IgnoreRoute("elmah.axd");

下一行处理它。

您需要配置的所有内容都在您的web.config 文件中。比如:

<elmah>
  <security allowRemoteAccess="yes" />
  <errorLog type="Elmah.SqlErrorLog, Elmah" connectionStringName="mySqlConnString" />
</elmah>
<location path="elmah.axd">
  <system.web>
    <authorization>
      <allow roles="Administrator" />
      <deny users="*" />
    </authorization>
  </system.web>
</location>

应该让你去。

【讨论】:

  • 谢谢,我正在使用 MVC,您确定我应该使用 吗?谢谢
  • Emlah 很可能已更新,而我使用的是较旧的配置。我认为重要的部分是allowRemoteAccess 并确保您已按照 jrummell 所述进行身份验证。
  • 对于 MVC,您将使用带有 等条目的 appSettings。安装这个 NuGet,它会适当地修改你的配置:nuget.org/packages/Elmah.MVC
  • 他说 Elmah MVC。您显示的设置不适用于 MVC,它们适用于早期版本的 elmah。然而,允许远程访问字符串是必需的
  • 我只需要这一行 谢谢
【解决方案2】:

以防万一有人遇到与我相同的问题。

这是我的代码,是错误的:

<elmah>
    <security allowremoteAccess="true" />
</elmah>

问题是允许remoteAccess中的r,它是小写的,而它应该是大写的!

正确代码:

<elmah>
    <security allowRemoteAccess="true" />
</elmah>

【讨论】:

  • 帮了大忙,我用 解决了我的问题,谢谢。
  • 好答案!虽然 Elmah.MVC 将大部分必要配置添加到 web.config,但缺少此行。
  • 这里是小写的“r”受害者,谢谢和赞成。
【解决方案3】:

即使我已将远程访问添加到我的 web.config:

<add key="elmah.mvc.allowedRoles" value="adminrole" />  

<elmah>
      <security allowRemoteAccess="true" />
      <errorLog type="Elmah.SqlErrorLog, Elmah" connectionStringName="DefaultConnection" />
      </elmah>

我必须在服务器上编辑 Elmah.Athz.config 并添加我想授予 elmah 访问权限的角色。我必须添加^adminrole

【讨论】:

  • 天哪,救了我,完全错过了这个文件。而已。谢谢。
猜你喜欢
  • 1970-01-01
  • 2011-02-17
  • 1970-01-01
  • 2017-06-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多