問題タブ [ihttpmodule]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
116 参照

asp.net - リクエストを早期に中止する場合、ASP.NET Web サイトの初期化エラーを防ぐ方法は?

サイトへのリクエストをリダイレクト、書き換え、中止するURLRewriteモジュールを試してみました。しかし、サイトにエラーが表示されました。

'HttpApplication.BeginRequest' でIHttpModuleどちらが同様の呼び出しを行うかを書き留めました。HttpApplication.Context.Response.End();これにより、イベントに直接ジャンプしEndRequestます。サイトはこれを想定しておらず、InvalidOperationException をスローして、EndRequest初期化を行わなくても一部のデータベース コードを消去しようとしていることを示しています。と同じURLRewriteです。

End()これは、呼び出しが初期化をスキップするためだと思います。

このエラーがユーザーに表示されないようにするにはどうすればよいですか? サードパーティのサイトを変更することができずに飲み込むようなものです。

私は他のイベントを試してHttpApplicationいますが、リクエストを処理したくありません。つまり、リクエストの一部としてデータベースに何も書き込まれません。ここにはまだ結果がありません。他にどのようなオプションがありますか?

0 投票する
1 に答える
182 参照

c# - IHttpModule を使用してリクエストの長さをログに記録する

Web 要求をログに記録する IHttpModule を作成しました。POSTリクエストを問題なく記録します。ただし、GET 要求の場合、長さは常にゼロのようです。GET リクエストの長さを取得する方法はありますか?

0 投票する
1 に答える
318 参照

c++ - ネイティブ IIS7.5 モジュールが実行されていません

CHttpModuleすべてのリクエストにカスタム ヘッダーを追加する単純なものを作成しました。

にコピーしC:\Windows\System32\inetsrv、モジュールを登録して、リストに追加しました。ただし、どのリクエストにも追加のヘッダーが表示されません。同様のマネージ モジュールを作成し、GAC にインストールして登録したところ、正常に動作しました。しかし、このネイティブ モジュールは何もしないようです。要求を処理するネイティブ モジュールを取得するために必要な別の手順はありますか?

また、問題があるかどうかはわかりませんが、要求は ASP.NET サイトに対して行われています。ネイティブ ハンドラーは ASP.NET で実行されませんか?

0 投票する
1 に答える
506 参照

asp.net - ASP.NET Webform モジュール、コンテキスト ユーザーが null

動画リクエストが /website/uploads/Video/M2U00001_2.mp4 などの HTTP モジュール (以下のコード) によって処理される場合、_context.Userは null です。

Visual Studio 開発サーバーを使用してローカル マシンの VS2010 でこれを実行すると、_context.User設定されます。IIS 7 (.net 4.0) にデプロイした後、_context.User は Null です。

「_context.User」は、http モジュールが aspx ページを処理する場合は Null ではありませんが、javascript、画像、ビデオ、または CSS を処理する場合は Null です。

なぜ_context.Usernullであり、_context.Userがnullでないことを保証する可能な解決策を誰でも説明できますか?

0 投票する
1 に答える
176 参照

webforms - ASP.NET WebForms HTTP モジュールでユーザーが何も設定されていません

asp.net Web アプリケーションに以下のカスタム モジュールがあります。モジュールは PC の chrome から動作しますが、Android からビデオにアクセスしようとすると、ユーザー ID (_context.User) が設定されていないため、エラーが発生します。これはすべて、アプリケーションにログインした後に発生します。したがって、_context.User を設定する必要があります。

このレベルでは HTTP リクエストとレスポンスを扱っているため、このモジュールはどのデバイスでも機能すると思います。

2 つの質問があります。

これを機能させる方法はありますか?

この問題を引き起こすために Android タブレットと PC から送信されるリクエストの違いは何ですか?

パブリック クラス VideoSecurityModule IHttpModule を実装 IRequiresSessionState を実装 プライベート WithEvents _context As HttpApplication

クラス終了

0 投票する
1 に答える
782 参照

asp.net - 同じ EventHandler に登録された場合のカップル httpModule の実行順序

私は httpModule を書いています。計画はモジュールをPreRequestHandlerExecuteイベントにアタッチすることですが、同じイベントにアタッチされた既存のモジュールが既にあることがわかります。

私の質問は、同じイベントに登録されている httpModules の実行順序は何ですか?

この場合PreRequestHandlerExecuteで同じイベントに登録されている場合、httpModules の実行順序を制御する方法はありますか?

0 投票する
1 に答える
2142 参照

c# - IIS AuthenticateRequest での WCF サービスの認証が初回のみ呼び出される場合

基本的なカスタム認証を使用して IIS で公開する必要がある OData WCF サービスの実用的な実装があります。

実装はMicrosoft OData の例に基づいており、IIS Express の下で完全に正常に動作します。基本認証のみを有効にして IIS 7.5 に発行すると、AuthenticateRequest ハンドラーは最初の要求でのみ呼び出され、ステータス コード 401 が返され、認証を求められます。

AuthenticateRequest は、後続のリクエストで呼び出されなくなりました。IIS でサービスをデバッグするとき、BeginRequest は確実に呼び出されます。パイプラインに AuthenticateRequest が存在しないだけですか? どちらも IIS Express のすべての要求と呼ばれます。

IIS 認証構成:

IIS 認証の構成

IHttpModule コード:

Web.config:

質問: Visual Studio 2012 デバッグ サーバーでは認証が機能するのに、IIS 7.5 では機能しないのはなぜですか? 完全なテスト プロジェクトは、ここからダウンロードできます。

編集:

CreateNotAuthorizedResponse 関数と response.End() で過剰なテスト コードをコメントアウトしたため、例外が発生しました (投稿する直前に追加しました)。

リクエストを検査すると、Cookie が原因で IIS が何らかの理由で認証をスキップする可能性があることを除いて、すべてが機能しているように見えます。最初の 2 つの raw リクエストの下 - 応答のペア:

リクエスト 1:

応答 1: (CreateNotAuthorizedResponse メソッドで作成)

リクエスト 2 (test:test - dGVzdDp0ZXN0 を入力した場合):

応答 2 (BeginRequest が呼び出されましたが、AuthenticateRequest は呼び出されません):

0 投票する
1 に答える
1052 参照

c# - HttpModule - 非同期が機能しない

HttpModuleWeb サイトに送信されるすべてのリクエストをログに記録する非同期を作成しました。要求が Web サイトに到着すると、カスタム http モジュールが WebAPI を呼び出して、情報をデータベースに記録します。IIS Express を使用した .Net 4.5/Visual Studio。

「api/activity」の簡略化された WebAPI コード。

問題は、PostAsJsonAsyncが実行されると、コードがそこで停止することです。コードは待機する必要があるため、これは正しいことです。しかし、呼び出しルーチンが期待どおりに非同期に続行されず、Web サイトの応答が 30 秒遅くなります。

このコードの何が問題になっていますか? 非同期をフックしてHttpModuleも、Http アプリケーションのフローに干渉してはいけませんか? 現在、ウェブサイトにアクセスすると、コードがブロックされています。