asp.net MVC3でアプリケーションを開発していて、次の質問があります。 HTTPモジュールはいつ書くべきですか?asp.net-mvcのHTTPモジュールとアクションフィルタ
答えて
フィルタは、より多くのMVCのアプローチを行うのに対し、HTTPモジュールはASP.NETのやり方のほうが多いです。両方とも、処理piplineにフックを設けることによって同様の目的を果たします。
HttpModuleは、より一般的なものであり、すべての要求に対して処理されるものが必要な場合に使用します。フィルタは、アクション固有の動作を追加するのに便利です。
HTTPリクエストごとに一度だけ実行されるものが必要な場合は、HttpModuleを使用する必要があります。 ActionFilterは、IsChildActionOnをチェックしない限り、リクエスト中に何度も実行されることがあります。
HttpModuleを IISはデフォルトの動作を無効にしたり、のHttpApplicationイベントにイベントハンドラをアタッチさせることにより、カスタム・ロジックを追加するためのWebアプリケーションを可能にする方法です。 IISモード(IntegratedまたはClassic)が異なる場合でも、Web.configの設定が異なります。
参考:
http://msdn.microsoft.com/en-us/library/ms227673(v=vs.100).aspx
例:WWWのURL
public void Init(HttpApplication application)
{
application.PreRequestHandlerExecute += this.Application_PreRequestHandlerExecute;
}
private void Application_PreRequestHandlerExecute(object sender, EventArgs e)
{
Uri requestUrl = HttpContext.Current.Request.Url;
string host = requestUrl.Authority.ToLower();
if (!host.StartsWith("www"))
{
HttpContext.Current.Response.Redirect(requestUrl.Scheme + "://www." + host + requestUrl.PathAndQuery);
HttpContext.Current.Response.End();
}
}
アクションフィルタに非WWWをリダイレクトするには、コントローラやアクションメソッドを飾る属性です。これは、MVCルーティングとアクションメソッドの間の抽象レイヤーです。アクションフィルタを使用すると、同じロジックを複数のコントローラまたはアクションメソッドに適用できます。たとえば、カスタムロギング。
リクエストハンドラの実行前後でHttpModuleが呼び出されます。開発者が各要求を傍受、参加、または変更できるようにするためのものです。購読可能な22の利用可能なイベントがあり、これによりモジュールはプロセスのさまざまな段階でリクエストを処理できます。このイベントは、キー要求パイプラインイベントが発生したときにコードを実行するページ開発者にとって便利です。また、カスタムモジュールを開発していて、パイプラインへのすべての要求に対してモジュールを呼び出す場合にも便利です。
フィルタは、MVCリクエストのライフサイクルの間にロジックを注入するように設計されています。具体的には、アクションが実行される前後、および結果が処理される前後に呼び出されます。フィルタは、MVCプロジェクト内で行われているいくつかのことを検査、分析、キャプチャ、計測する強力な方法をユーザに提供します。
- 認証
- 認証
- アクション
- 結果
- 例外ですから、または、傍受参加したい場合は
:MVC5のとおり、フィルタの5種類があります22 events in the http request pipelineの特定の部分を変更してのモジュールを選択してください。OnActionExecutted
- OnActionExecuting
- 1. Httphandlersとhttpモジュール
- 2. HTTPモジュールとAjax
- 3. アクションフィルタ
- 4. ウェブAPIとHTTPモジュール
- 5. ASP.Net MVCのHTTPモジュールとHTTPハンドラ?
- 6. NodeJS HTTPモジュールとNginxサーバー
- 7. アクションフィルタのASP.NET MVCテスト
- 8. アクションフィルタ属性
- 9. は、アクションフィルタで
- 10. httpとhttpsモジュールの違いは?クライアントスクリプトでhttpモジュールを使用する方法は?
- 11. Node.jsモジュールのソースコードHTTP
- 12. は、Node.jsのHTTPモジュール
- 13. Ionic HTTPリクエストプラグイン/モジュール
- 14. ASP.NETでのHTTPモジュールとHTTPハンドラの間の内部遅延
- 15. ISAPIフィルタとASPの違い.Net Httpモジュール
- 16. ModelStateをアクションフィルタでチェック
- 17. アクションフィルタの実行順序
- 18. レスポンスボディHTTP要求モジュール
- 19. Node.js HTTPモジュール:レスポンス+リクエスト
- 20. 非同期http-request、node.jsモジュールと変数
- 21. エラーAngular 2のhttpモジュール
- 22. ASP.NETMVCのドロップダウンに複数の静的オプションを追加する
- 23. MVCアクションフィルタでセッションタイムアウト後にリダイレクト
- 24. MVC4フォーム検証、多分アクションフィルタ
- 25. asp.netMvc 3の状態でジェネリックコレクションを管理する方法
- 26. nodejs httpモジュール - 画像アップロード
- 27. httpモジュールnativescript内をナビゲート
- 28. NodeJsリクエストhttpモジュールoptions.uriエラー
- 29. 出力キャッシュとその他のアクションフィルタの操作
- 30. アクションフィルタの変更要求パスに