2011-10-25 8 views
0

私は、WebサイトのすべてのページリクエストにHTTPヘッダーを設定しようとしています。これを行うために、ヘッダー(Response.AppendHeader( "p3p"、 "{HeaderInfoHere}"))を追加するコードは、ベースコントローラーのOnActionExecutedオーバーライドに配置されます(したがって、アクションが呼び出されるたびに呼び出されます)。ベースコントローラにHTTPヘッダーが設定されていますか?

問題は、アクションが呼び出されるたびにヘッダーが追加される(他のコントローラーはすべてベースコントローラーから継承される)ので、ヘッダーは他のアクション(部分的なビューなど)の数に応じて何度も追加されます。 )は、最初の要求の一部として呼び出されます。

レスポンスオブジェクトのヘッダーコレクションを照会できません - 私たちはサーバでIIS統合パイプラインモードが無効になっているため(変更できない)、PlatformNotSupported例外が発生します。すでに追加されています。

MVCのGETリクエストやこのシナリオの回避策として、誰かがヘッダー(1回)を追加する良い方法を提案できますか?

+0

を経由してアクセス可能です - あなたはまた、セッションを使用するように試みることができる(TempDataを、すでにそれを使用し、誰もがチョーク前に)? –

+0

統合モードではなくモジュールにヘッダーを追加することはできません。おもう。私の記憶はあいまいです:) –

+0

私はそれらを追加することができますそれは見える - ちょうどコードのヘッダーコレクションを読んでいない:S –

答えて

0

ControllerContext(RouteDataの場合もあります)にデータを追加します。コードを追加する前にチェックしている「このヘッダーは既に追加済みです。

セッションはHttpModuleを作成controllerContext.HttpContext.Session

関連する問題