1

こんにちは、admin と呼ばれる mvc エリア内からのみアクセスできるように elmah を保護しようとしています: /admin/area

最初に表示されるように、ルート構成の先頭に次を追加しました。

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

system.web と system.webServer の両方の下にある web.config に次のように記述します。

  <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.

ルートが無視されていないようですか?

4

1 に答える 1

1

Elmah.MVCナゲットが役立つかもしれません。

バージョン 2.0.0 より前 (例: 1.3.2 ) では、「admin」という名前の領域が追加され、その中に「elmah」という名前のコントローラーが追加されました。したがって、web.config から "elmah.axd" を使用してハンドラーを削除しても、"/admin/elmah" で elmah にアクセスできます。次に、autorizeattribute を elmahcontroller に追加して、このルートを保護できます。

バージョン > 2.0.0 では、admin という名前の領域を追加しないように変更されました。代わりに、"/elmah" で elmah にアクセスします。バージョン > 2.0.0 では、web.config から elmah.axd も自動的に削除されます。

于 2012-06-26T19:46:22.807 に答える