問題タブ [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.
error-handling - IHttpModule によって実装されたエラー処理は IIS6 では機能せず、IIS5.1 では機能します
IHttpModule を使用して一般的なエラー処理を実装します。WinXPを搭載した私のマシンでローカルに動作するのは魅力的です。テスト サーバー (W2003) にソリューションをアップロードすると、機能しません。エラーが発生すると、asp.net エラー ページに直接表示されます。私のエラーモジュールを使用して処理しません。
どんな提案も大歓迎です....X.
asp.net-mvc - IHttpModule から ASP.NET MVC RequestContext にデータを取得する方法は?
認証 (Facebook、Myspace など) を行うカスタム IHttpModule があります。ユーザーに関する詳細とともに HttpApplication インスタンスで処理できるイベントを発生させます。FormsAuthenticationModule が発生させる OnAuthenticate イベントによく似ています。
HttpApplication クラスから取得したこの情報をどこに配置すれば、ASP.NET MVC パイプラインで利用できるようになりますか? Context.Items ディクショナリに貼り付けていました。しかし、(はるかに友好的な) HttpContextBase を使用しているようです。モック/インジェクトが簡単になるようにそこに配置したいと思います。コントローラーで HttpContext.Current を使用していません。
では、基本的に、IHttpModule から MVC コンテキストにデータを取得するにはどうすればよいでしょうか? ざっと見て思いついた最善の方法は、カスタム IControllerFactory を作成して HttpContext からデータを引き出し、それを RequestContext に追加することです。私は自分の質問に答えましたか?邪魔にならない方法はありますか (私が処理できるイベントなど)?
asp.net - Global.asax での IHttpModule の使用
私は、例外処理システムを書き直すというスリル満点の仕事を与えられました。アプリケーション全体の観点から例外を処理することは私たちが望んでいるものではないと述べますが、通常、ドアを押し出す必要がある膨大な量の作業のためにチームの人員が不足している場合、それは避けられません。ここでの例外処理のグローバル化されたソリューション:)
どのような一般的な解決策が存在するかをよく調べました。現時点では、Application_Error イベントで Global.asax を使用して Server.GetLastError() を実行します。これは Session 状態に置かれ、リダイレクトが別のページに呼び出され、そこでセッション データが取得され、人間が判読できる形式で出力されます。リダイレクトは、a) 開発者に電子メールで送信され、b) 開発者のみが表示できる Web ページから表示されたエラー情報を慎重に監査する sproc も呼び出します。
私が見た新しい方法は、App_Code のクラスを使用して IHttpModule インターフェイスを使用して、これらの行に沿って何かを行うことです (これは私の簡単な実装です)。
私の質問は、Global.asax イベントの使用に対するこのソリューションの利点は何ですか? また、データをエラー ページに渡す最善の方法は何ですか?
EDIT:上記のコードは、ところで動作します;)
編集:また、HttpModule は舞台裏でどのように機能しますか? アプリケーションの起動時にその特定の関数にエラーイベントを登録するだけですか?
アップデート:
さらに詳しく調査すると、IHttpModule インターフェイスの使用に関しては、セッション データの取得が非常に厄介なようです。MS は、特定のシナリオで使用できるほど十分に HttpModule を成熟させたとは思いません。セッション データに固有のイベントが発生するまでは、危険すぎて使用できません。
c# - ASP.net での静的ファイルと認証
IIS7 に仮想フォルダー /topFolder/ があり、そのフォルダーには、ブラウザーに表示できる任意のファイル (xml、html、swf、doc など - IIS の観点からは通常「管理されていない」リソース) が存在するとします。フォルダーの下のファイルを開く許可を要求に与える前に、ユーザーが問題のサブフォルダーとファイルの「ライセンス」を持っているかどうかを確認するために、いくつかのセッション変数を確認する必要があります。
IHttpModule および IReadOnlySessionState インターフェイスを使用してモジュールを実装しようとしましたが、ファイルが "静的" で IIS で管理されていない (aspx、ashx など) 場合、セッションは常に AcquireRequestState イベントで null になります。
カスタム HttpHandler を使用すると、セッションを取得できますが、コンテンツを応答に送信する方法も実装する必要があります。編集: ユーザーはファイルをダウンロードしていないので、IIS がその StaticFileModule と同じようにファイルを提供するようにしたいだけです。ハンドラー/モジュールは、実際には StaticFileModuleWithAuthorizationHook である必要があります...
だから私は本当に次のことをしたい: 1. リクエスト /topFolder/* について: セッションとライセンスなどをチェックする
誰かが助けてくれることを願っています。
asp.net - 方法 2: js リンクを head 要素に配置するために HttpModule でフックするイベント
単純な構成データから HEAD 要素に javascript、css リンクを挿入するための HttpModule が必要です。どのイベントをフックすればよいかわかりません。
現在、マスターページ
を動的に変更するための context.PreRequestHandlerExecute
- SEO 最適化のための Context.BeginRequest を 使用しています。
HTTPModule Event Execution Order?にヘルプがありますか?
ヒントをありがとう。乾杯、X.
c# - 特定の場所で HttpModule を無効にする
これはすでにここで尋ねられていることを知っていますが、IHttpHandler を実装していないサードパーティのコンポーネントを使用しているため、(代わりにハンドラーを使用して) 答えても問題は解決しません。
繰り返しになりますが、特定のリクエストで HttpModule をロード/アンロードする方法はありますか?
編集: .NET 2.0 を使用していることを忘れていました。忘れてすみません。
asp.net - IHttpModule の StatusCode は常に 200 ですか?
IHttpModule
利用可能なすべてのイベントを処理し、ファイルに記録するカスタムがHttpContext.Current.Response.StatusCode
あります。
Myweb.config
には他のモジュールが含まれていない<httpModules>
ため、すべてのエラーがブラウザーに昇格されます。
ブラウザには 404 が表示されますが、ログ ファイルには 200 個の (Ok) エントリがあり、1 つの 404 ではありません。
私は何が欠けていますか?
アップデート
で終わる URLにはイベントにStatusCode があり.aspx
ますが、たとえば で終わる Url は、すべてのイベントでStatusCodeを表示しますか?!404
PreSendRequestHeaders
.pdf
200
asp.net-mvc - ASP.NETMVCおよびIIS7での生のHTTP要求/応答のログ記録
私は(ASP.NET MVCを使用して)Webサービスを作成していますが、サポートの目的で、要求と応答を生のオンザワイヤー形式(つまり、HTTPを含む)にできるだけ近い形でログに記録できるようにしたいと考えています。メソッド、パス、すべてのヘッダー、および本文)をデータベースに追加します。
私がよくわからないのは、このデータを最小限の「混乱した」方法で取得する方法です。オブジェクトのすべてのプロパティを調べて、それらから文字列を作成することで(そして同様に応答についても)、要求がどのように見えるかを再構成できますHttpRequest
が、実際の要求/応答データを取得したいと思います。有線で送信されます。
フィルタやモジュールなどの傍受メカニズムを使用できてうれしいです。ソリューションはIIS7に固有のものにすることができます。ただし、マネージコードのみで保持したいと思います。
何かお勧めはありますか?
編集:リクエストをディスクに保存できるメソッドがあることに注意しHttpRequest
てくださいが、SaveAs
これは、パブリックにアクセスできない内部ヘルパーメソッドのロードを使用して内部状態からリクエストを再構築します(これがユーザー提供の保存を許可しない理由はかなりあります)わからないストリーム)。そのため、オブジェクトから要求/応答テキストを再構築するために最善を尽くさなければならないように見え始めています...うめき声。
編集2:メソッド、パス、ヘッダーなどを含むリクエスト全体を言ったことに注意してください。現在の応答は、この情報を含まないボディストリームのみを調べます。
編集3:誰もこのあたりの質問を読んでいませんか?これまでのところ5つの答えがありますが、生のオンザワイヤ要求全体を取得する方法を示唆するものは1つもありません。はい、リクエストオブジェクトから出力ストリーム、ヘッダー、URLなどすべてをキャプチャできることはわかっています。私はすでに質問でそれを言った、見てください:
HttpRequestオブジェクトのすべてのプロパティを調べて、それらから文字列を作成することで(そして同様に応答についても)、要求がどのように見えるかを再構成できますが、実際の要求/応答データを取得したいと思います。それはネットワーク上で送信されます。
完全な生データ(ヘッダー、URL、httpメソッドなどを含む)を単純に取得できないことがわかっている場合は、それを知っておくと便利です。同様に、私が尋ねたように、再構築せずにすべてをraw形式(はい、ヘッダー、URL、httpメソッドなどを含めることを意味します)で取得する方法を知っている場合、それは非常に便利です。HttpRequest
しかし、 /HttpResponse
オブジェクトから再構築できると言っても役に立ちません。そんなこと知ってる。私はすでにそれを言いました。
注:これは悪い考えである、またはスケーラビリティを制限するなどと誰かが言う前に、分散環境でスロットリング、順次配信、およびアンチリプレイメカニズムも実装するため、とにかくデータベースロギングが必要です。私はこれが良い考えであるかどうかの議論を探していません、私はそれがどのように行われることができるかを探しています。
c# - ASP.NETWebフォームIHttpModuleシングルトン
Webサイトとは別のアセンブリにIHttpModuleを実装するクラスがあります。モジュールの実装は、リクエストをインターセプトし、WebサイトのURLを書き換えます。
マッピングは、要求されたURLと宛先URLとともにクラスに保存されます。
http://devhood.com/Tutorials/tutorial_details.aspx?tutorial_id=486の2番目の例MTSingletonは、マッピングリストの作成に適していますか?モジュール実装内からのより良いアプローチはありますか?
編集:私の悪い、これはIIS6.0と.NET3.5SP1用です