在我的 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,我不能/不知道该怎么做。对于我的视图,我实现了一个自定义身份验证属性,它与 [Authorize] 属性非常相似(但取而代之的是权限......)。现在我想使用我的自定义 RoleProvider 指定“elmah.axd”(不是物理文件)的可访问性。
有谁知道我如何实现我的目标?