2012-04-17 57 views
1

你好我試圖保護ELMAH只從一個MVC區域內訪問名爲admin:/管理/地區如何保護ELMAH在MVC面積

我已經添加了以下的路線配置的頂部,這樣他們先出現:

routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 
routes.IgnoreRoute("admin/elmah.axd/{*pathInfo}"); 

,並在web.config中雙方的System.Web和system.webServer下有以下幾點:

<handlers> 
    ... 
     <add verb="POST,GET,HEAD" path="/admin/elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" /> 
    </handlers> 

但我不斷收到:

The controller for path '/admin/elmah.axd' could not be found. 

似乎路線不被忽略?

回答

1

Elmah.MVC nuget可能有幫助。

在版本2.0.0之前(例如1.3.2),它添加了一個名爲「admin」的區域,並在其內部有一個名爲「elmah」的控制器。所以你可以從web.config中刪除「elmah.axd」的處理程序,並且仍然可以訪問「/ admin/elmah」中的elmah。 然後,您可以通過向elmahcontroller添加autorize屬性來保護此路線。

在版本> 2.0.0中,它已更改爲不添加名爲admin的區域。相反,您訪問「/ elmah」上的elmah。 版本> 2.0.0也會自動從您的web.config中移除elmah.axd。