問題タブ [httpmodule]

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 投票する
4 に答える
12295 参照

.net - HttpContext.Current.Handlerがnullであるのはなぜですか?

HttpModule内のページにアクセスしようとしていますが、HttpContext.Current.Handler(これは現在のページを参照する必要があります)を呼び出すことでこれを行う必要があると思いますが、常にnullが発生します。

.Net3.5フレームワークを使用して開発しています。

AuthorizeRequestとAuthenticateRequestでこれをチェックしています

ありがとう。

0 投票する
2 に答える
2092 参照

asp.net - HttpModuleを使用したリクエスト間のキャッシュ

リクエストを受け入れ、(データベースルックアップを介して)処理し、結果(html)をレスポンスに出力するHttpModuleを作成しました。(HttpModuleは、要求が完了した後に実際に要求を終了するため、要求の通常のASP.NET処理は行われないことに注意してください。)

データベースの検索には費用と時間がかかる可能性があるため、結果をメモリに保存して、後続の(同一の)リクエストにデータベースにアクセスせずに同じコンテンツを提供できるようにしたいと思います。

HttpModuleの後続の呼び出しで使用できるように、(メモリ内の)データをどこに保存できますか?

0 投票する
4 に答える
21690 参照

c# - HttpModule Initメソッドが数回呼び出されます-なぜですか?

httpモジュールを作成していて、デバッグ中に、最初は(少なくとも)奇妙な動作のように見える何かに気づきました。

httpmoduleのinitメソッドにブレークポイントを設定すると、デバッグのためにWebサイトを起動して単一の要求を行っただけなのに、 http module initメソッドが数回呼び出されていることがわかります(1回だけヒットすることもあります)。 、他の場合は10倍)。

HttpApplicationの複数のインスタンスが実行され、httpモジュールごとに作成されることを期待する必要があることはわかっていますが、単一のページを要求すると、単一のhttpアプリケーションオブジェクトによって処理されるため、関連付けられたイベントは1回だけ発生します。ただし、リクエストごとにイベントを数回発生させますが、これは意味がありません。ただし、そのhttpApplication内に複数回追加されている必要があります。つまり、毎回呼び出されるのと同じhttpmodule initメソッドであり、新しいhttpアプリケーションではありません。ブレークポイントに到達するたびに作成されます(下部のコード例などを参照してください)。

ここで何がうまくいかない可能性がありますか?デバッグしていて、httpモジュールにブレークポイントを設定しているからですか?

デバッグのためにWebサイトを起動し、httpmoduleのブレークポイントをすばやくステップオーバーすると、initメソッドが1回だけヒットし、eventhandlerにも同じことが当てはまるようです。代わりに、ブレークポイントで数秒間ハングさせた場合、initメソッドが数回呼び出されます(ブレークポイントをステップオーバーするまでの待機時間によって異なるようです)。これは、httpmoduleが初期化され、httpアプリケーションが要求を処理できることを確認するための組み込み機能である可能性がありますが、壊滅的な結果をもたらす可能性があるもののようにも見えます。

リクエストを終了しようとしている可能性があり、ブレークポイントを設定したため、問題が発生したと見なしてinitメソッドを再度呼び出そうとするため、これは論理的に見える可能性があります。リクエストを処理できますか?

しかし、これは起こっていることであり、すべてがうまくいっていますか(私は推測しています)、それとも本当の問題ですか?

私が特に懸念しているのは、何かが「本番/ライブ」サーバーで数秒間ハングする場合、initを介して多くのイベントハンドラーが追加されるため、ページへの各リクエストが突然イベントハンドラーを数回起動することです

この動作により、サイトがすぐにダウンする可能性があります。

私はformsauthenticationやrolemanagermoduleなどのhttpmodulesに使用される「元の」.netコードを見てきました...しかし、私のコードはそれらのモジュールが使用するものと何ら変わりはありません。

私のコードは次のようになります。

.NETFrameworkのRo​​leManagerModuleでどのように実行されるかの例を次に示します。

誰かが何が起こっているのか知っていますか?

(私はただ誰かがこれが起こっている理由を教えてくれて、すべてが完全にうまくいくことを私に保証してくれることを願っています):)


アップデート:

私は問題を絞り込もうとしましたが、これまでのところ、呼び出されているinitメソッドは常にhttpモジュールの新しいオブジェクト上にあることがわかりました(以前考えていたのとは逆です)。

最初のリクエスト(サイトの起動時)では、作成されているすべてのHttpApplicationオブジェクトとそのモジュールがすべて最初のリクエストを処理しようとしているため、追加されているイベントハンドラーにヒットしているようです。なぜこれが起こっているのか本当に理解できません。

別のページをリクエストすると、作成されたすべてのHttpApplication(およびそれらのモジュール)が再度リクエストを処理しようとし、イベントハンドラーに複数回ヒットします。

しかし、最初のページ(または別のページ)に戻ると、1つのHttpApplicationのみが要求の処理を開始し、すべてが期待どおりに行われるようです-ブレークポイントでハングさせない限り。

ブレークポイントでハングさせると、新しいHttpApplicationのオブジェクトの作成が開始され、リクエストを処理/処理するためのHttpApplications(1つ以上)の追加が開始されます(現在、で停止しているHttpApplicationによって処理されています。ブレークポイント)。

負荷やエラーの分散と処理を支援するインテリジェントな「舞台裏」の方法である可能性があると思います。しかし、私には手がかりがありません。私はそこにいる人がそれが完全に素晴らしいこととそれがどうあるべきかを私に保証できることを願っていますか?

0 投票する
2 に答える
1238 参照

c# - HttpModuleと静的クラス、複数のリクエストが同じ静的データを共有していますか?

ASP.NET HttpModuleを作成しましたが、リクエストの存続期間中、構成データを読み込んで保存するために使用される静的ヘルパークラスがあります。

静的コンストラクターはパラメーターなしである必要があるため、HttpRequestの処理の開始時に呼び出す静的SetConfigNameメソッドがあります。

後でHttpRequestの処理中に呼び出される静的なGet()メソッドもあります。

ロードされる構成データは(URLの値に基づいて)リクエストごとに異なる可能性があるため、SetConfigNameを呼び出した後、他のリクエストが静的データを共有することは望ましくありません。

したがって、問題は、複数のリクエストが同じ静的データを共有するのか、それとも新しいリクエストごとに静的クラスの個別のコピーを取得するのかということです。(そして、データが共有されている場合、それを回避する方法は?それを非静的クラスにする唯一の方法ですか?)

(ちなみに、global.asaxは使用していません。)

0 投票する
2 に答える
7178 参照

asp.net-mvc - IIS7 で静的コンテンツの実行から HttpModule を除外する

Authentication HttpModule に問題があります。問題は、Web サーバー (IIS7) で取得したすべてのリクエストに対して明らかに実行されることです。セッション変数も使用するため、CSS や JS ファイルなどでは正しく動作しません。

私は使用しようとしました:

しかし、役に立たない。拡張子や MIME タイプに関係なく、すべてのリクエストで引き続き実行されます。私も追加する必要があります、設定があります

それは私には疑わしいと思われ、実際にモジュールの前提条件を無効にしました。ただし、これを false に変更すると、アプリケーションがまったく別の方法で中断され、別の例外が発生します (SessionStateTempDataProvider では、SessionState を有効にする必要があります)。

静的コンテンツ ファイルに対する要求が行われたときに、IIS7 に HttpModule を強制的に除外させる方法を誰か助けてもらえますか?

0 投票する
2 に答える
8933 参照

asp.net-mvc - 構成されたマネージド モジュールでの Asp.net MVC エラー

私は非常に単純なカスタム認証を持っていHttpModuleます。しかし、マネージド リクエストに対してのみ実行したい (静的リクエストに対しては実行しない)。

Asp.net MVC は、IIS7 Web サーバーの構成セクションを自動的に追加します。

独自のモジュールを追加すると、その も設定されますpreCondition="managedHandler"が、runAllManagedModulesForAllRequests="true"<module>要素があるため、 mypreConditionは設計上無視されます (MSDN で読んだように)。

私が設定しようとすると:

エラーが発生します。

web.configこの設定を機能させるには、他に何 (他のどのモジュール) を設定する必要がありますか?

0 投票する
4 に答える
3897 参照

c# - URLがファイルのリクエストであるかどうかをテストするHttpModule / HttpApplication

HttpModule 内で、URL がファイルで終わるかどうかを確認したいと思います。

すなわち。www.example.com/images/images.css

そして、ファイル拡張子は何ですか。cssまたはjs

Begin_Request イベント ハンドラーでは、HttpApplication にネストされた Request オブジェクトの Url プロパティを使用して、現在、String 操作を使用してファイル拡張子を切り取っています。これを行うより良い方法はありますか?

0 投票する
2 に答える
2316 参照

c# - Asp.Net 認証モジュール

ASP.Net で認証モジュールを作成しましたが、ロジックが高価であるため、リソースが匿名アクセス用に構成されている場合、認証モジュールのロジックを実行したくありません。

認証を必要としないページと同じディレクトリに認証が必要なページがあります。私はこれを制御できません。URLAuthorizationModule の前にリソースが匿名アクセスを許可するように構成されていることを確認する簡単な方法はありますか?

現在、私は「感じる」権利を行う次のことを行っています。どんな助けでも大歓迎です。

0 投票する
3 に答える
2203 参照

c# - Global.asax の問題

私は HttpModule を開発し、Global.asax を使用しています。HttpApplication から派生するクラスを開発しましたが、クラスの Application_Start メソッドが実行されません (Application_Start の先頭にファイルを作成しますが、ファイルが作成されないため、Application_Start が実行されないと思います)。VSTS2008 + C# + .Net 3.5 を使用しています。

何が間違っていて、どのようにデバッグするのですか? Global.asax を Web サイトの仮想ディレクトリのルート ディレクトリにコピーする必要があることを確認したいのですが、正しいですか? HttpModule を実行するには、web.config で何かを構成する必要がありますか?

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

events - プロバイダーを処理するときに現在のプリンシパルを設定するために HttpModule で処理するイベントはどれですか?

HttpContext.Current.User にこれらが含まれるように、プリンシパルと ID が現在のスレッドに設定されているカスタム HttpModule と統合する必要があるという問題に直面しています。しかし、彼らが使用したイベントハンドラー (PostAcquireRequestState) が遅すぎる気がします。

HttpModule でプロバイダーの初期化が発生する前に処理するのに最適なイベントはどれですか? 私が望むのは、カスタム プロバイダーが正しいプリンシパルと ID で動作することだけです。