使用自定义RoleProvider限制对ELMAH的访问

时间:2013-02-27 12:00:36

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

在我的mvc项目中,我已经为异常处理设置了ELMAH。 ELMAH附带了一个前端,可以通过“/elmah.axd”访问。

在web.config中,这个配置如下:

<location path="elmah.axd">  
        <system.web>
            <httpHandlers>
                <add verb="POST,GET,HEAD" 
                     path="elmah.axd" 
                     type="Elmah.ErrorLogPageFactory, Elmah" />
            </httpHandlers>

            <authorization>
              <allow roles="ADMIN" /> <!-- instead i want to use 'permission' from my custom RoleProvider -->
              <deny users="*"/> 
            </authorization>
        </system.web>
        <system.webServer>
            <handlers>
                <add name="ELMAH" 
                     verb="POST,GET,HEAD"
                     path="elmah.axd" 
                     type="Elmah.ErrorLogPageFactory, Elmah"
                     preCondition="integratedMode" />
            </handlers>
        </system.webServer>
    </location>  

如果我使用标准RoleProvider,我将使用上面示例中指定的授权。但由于我有一个自定义RoleProvider我不能/不知道如何做到这一点。 对于我的视图,我实现了一个自定义的身份验证属性,它与[授权]属性非常相似(但取代了权限......)。现在我想使用我的自定义RoleProvider指定“elmah.axd”(不是物理文件)的可访问性。

有没有人知道我如何才能达到我的目标?

1 个答案:

答案 0 :(得分:1)

here似乎是一种可行的方法......