如何在Web中为管理员登录提供仅ELMAH.axd的Access

imd*_*sen 7 elmah asp.net-mvc-3

我已经创建了应用程序并实现了ELMAH日志记录.在我的网站中有三种类型的用户.

  • 管理员:可以一切(查看elamh.axd的权利)
  • 用户 :可以拥有自己的权限(无法查看elamh.axd)
  • 访客:仅查看(无法查看elamh.axd)
  • 以上用户将存储在数据库中.

    Probelm: - 现在我如何管理User和Guest的保护级别以查看ELMAH.axd日志文件?

    Ada*_*gan 10

    如果您正在使用角色,可以将其添加到您的web.config:

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

    如果您没有使用角色,则必须指定要授予其访问权限的每个用户:

    <location path="~/elmah.axd">
        <system.web>
            <authorization>
                <allow users="user1, user2, user3" />
                <deny users="*" />
            </authorization>
        </system.web>
    </location>
    
    Run Code Online (Sandbox Code Playgroud)

    更新:

    由于您没有使用任何内置的身份验证/授权,并且您无法控制elmah页面,因此您将不得不处理该BeginRequest()事件:

    protected void Application_BeginRequest()
    {
        if(Request.Url.AbsolutePath.ToLowerInvariant().Contains("elmah.axd"))
        {
            // Check if user can see elmah and handle unauthorised users (return 401/redirect to login page/etc...)
        }
    }
    
    Run Code Online (Sandbox Code Playgroud)