この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 51405|答える: 5

[ASP.NET] asp.net IHttpModuleインターフェースについて詳しく説明しています

[リンクをコピー]
掲載地 2018/03/13 21:46:06 | | | |
前面に書かれています

IHttpModuleの関連内容についても面接で質問され、このインターフェースにはInitメソッドがあり、実装クラスでInitメソッドで一連のイベントを登録できると漠然と感じました。 今週末の自宅では、たとえこの知識の隙間を確認し埋めることであっても、本当にやることはほとんどありません。

IHttpモジュールの動作

asp.net ライフサイクルに詳しい友人なら知っているはずですが、HttpModuleの実行はHttpHandlerの前に実行され、その後HttpModuleの一連のイベントを実行し、その後HttpHandlerを実行し、さらにHttpModuleのいくつかのイベントを実行します。 詳細については、以下のライフサイクル図をご参照ください。



HttpHandlerはHTTPリクエストを処理する場所であり、HttpModuleはHTTPリクエストの「唯一の方法」です。つまり、このHTTPリクエストが実際のリクエスト処理センター(HttpHandler)に渡される前に必要な情報を追加したり、傍受されたHTTPリクエスト情報に追加作業を行うことができます。 あるいは、条件を満たすHTTPリクエストを単純に終了させることもあり、これがフィルターとして機能します。

HTTPリクエストは、HttpModuleコンテナの配信中に(ResolveRequestCacheイベント)にHttpHandlerコンテナに渡されます。 このイベントの後、HttpModuleコンテナはHttpHandlerのイングレスインスタンスを作成しますが、HTTPリクエストの制御を放棄する代わりに、AcquireRequestStateおよびPreRequestHandlerExcuteイベントを引き続き起動します。 PreRequestHandlerExcuteイベントの後、HttpModuleウィンドウは一時的に実際のHTTPリクエスト処理のためのHttpHandlerコンテナの制御権を付与します。

HttpHandlerコンテナ内では、ProcessRequestメソッドがHTTPリクエストを処理するために実行されます。 コンテナHttpHandlerがHTTPリクエスト全体を処理した後、制御権をHttpModuleに戻し、HttpModuleは処理されたHTTPリクエスト情報フローを層ごとに渡し続け、最終的にクライアントに返されます。

一例

プロジェクト構成



MyHttpModule コード

web.configでカスタムHttpModuleを登録します

ページを閲覧Default.aspx



では、ライフサイクルにおける一連の出来事の実行順序はどのようなものなのでしょうか?


結果を閲覧してください



HttpModuleを使ってHttpリクエストを終了します


結果



概要

ここでは、asp.net ライフサイクルで最も重要なインターフェースであるIHttpModuleを紹介します。これはイベントインターフェースと説明できます。なぜなら、実装クラスのInitメソッドでは、ライフサイクル内のさまざまなイベントを登録でき、イベント内でさまざまなロジックを定義できるからです。





先の:Asp.Net IHttpHandlerが導入しました
次に:C#は適切な属性やメソッドでこのヘッダーの回避策を修正しなければなりません
 地主| 掲載地 2018/03/13 21:46:47 |
. NETFramework 4.5は25の標準イベントを提供します。


 地主| 掲載地 2018/03/13 21:47:03 |
. NETFramework 4.0は、19の標準イベントを提供します。

1. BeginRequest:リクエストの処理を開始する asp.net の最初のイベントで、処理開始を示します。

2. AuthenticateRequest:認証要求で、一般的にリクエストのユーザー情報を取得するために使われます。

3. PostAuthenticateRequest:リクエストされたユーザー情報。

4. AuthorizeRequest:認証。一般的にユーザーのリクエストが許可されているかどうかを確認するために使われます。

5. PostAuthorizeRequest:ユーザーリクエストが承認されました。

6. ResolveRequestCache:前回の処理キャッシュの処理結果を取得します。もし以前にキャッシュされていた場合は、リクエストを処理する必要がなく、キャッシュされた結果を直接返します。

7. PostResolveRequestCache:キャッシュは処理済みです。

8. PostMapRequestHandler:ユーザーのリクエストに基づいて作成されたプロセッサオブジェクト。

9. AcquireRequestState:セッションで一般的に使われるリクエストのステータスを取得する

10. PostAcquireRequestState: セッションが取得されました

11. PreRequestHandlerExecute: 実行ハンドラーを準備します。

12. PostRequestHandlerExecute:ハンドラが実行されました

13. ReleaseRequestState:リリース申請の状態。

14. PostReleaseRequestState:リクエストのステータスが公開されました。

15. UpdateRequestCache:キャッシュを更新します。

16. PostUpdateRequestCache:キャッシュは更新されました。

17. LogRequest:ログ操作を要求した

18. PostLogRequest:リクエストのログ操作が完了しました。

19. EndRequest:リクエストが処理されます。
掲載地 2019/04/22 9:48:33 |
ブックマークしてください
掲載地 2021/09/30 19:19:09 |
最近勉強しています。 よく読んでみてください
 地主| 掲載地 2023/07/14 20:26:36 |
ASP.NET MVCはIHttpモジュールに基づくリクエストをカウントします
https://www.itsvse.com/thread-10627-1-1.html
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com