Asp.net MVCは、多くの(そして非常に便利な)HtmlHelper
拡張機能を提供します。しかし、既存のものを拡張するいくつかの拡張メソッドを備えたマイクロサブフレームワークを提供する場合はどうなりますか?
つまりBeginForm
、よりリッチになるように書き直すことができます(偽造防止トークンなどのセキュリティ機能を常に追加します)。
質問
Asp.net MVCのHTMLヘルパーメソッドのすべてを書き直さないために、どうすれば私の使用を強制できますか?そのため、通常を使用BeginForm
すると、例外がスローされるか、そもそもアクセスできなくなります。2番目の選択は、ビューのフォルダーweb.configファイルSystem.Web.Mvc.Html
から名前空間を削除しないと不可能な可能性があります。これは、これらのヘルパーすべてを書き直す必要があることを意味します。そして、それは私がやりたくないことです。
重要なのは、このマイクロサブフレームワークを使用すると、セキュリティ上の理由から標準ヘルパーの使用を防ぐ必要があるということです。限目。
他にどのようなオプションがありますか?
例
私が自分BeginForm
で書くだけで、それを次のBeginSecureForm
ように使用するとします。
@using Html.BeginSecureForm() {
...
@Html.EditorFor(m => m.Something)
...
}
ご覧のとおり、カスタムヘルパーと標準EditorFor
ヘルパーも使用しました。これは、System.Web.Mvc.Html
のような非カスタムヘルパーを使用するためにまだ含まれていることを意味しEditorFor
ます。
私のカスタムヘルパーメソッドを使用している限り、上位のコードは正常に機能します...しかし、一部の開発者がそうすることを忘れて、代わりに通常のメソッドを使用した場合はどうなりますか?
@using Html.BeginForm() {
...
@Html.EditorFor(m => m.Something)
...
}
この場合、私は次のいずれかを行います。
Html.BeginForm
まったくアクセスできないHtml.BeginForm
セキュアバージョンを使用する必要があるという例外をスローします- 私が知らない他のことは、標準の使用を防ぐために行うことができます
BeginForm