в моем 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] (но вместо этого принимает разрешения ...). Теперь я хочу указать доступность для elmah.axd (который не является физическим файлом) с помощью моего настраиваемого RoleProvider.
Кто-нибудь знает, как я могу достичь своей цели?