私はライフサイクル (パイプライン モード) でイベントPostAuthorizeRequest
にフックしておりIIS
、わかりやすい URL (ファイル拡張子なし。例: /page1/page2) へのリクエストが処理されず (リダイレクトも rewritepath もありません)、404 が発生する必要があります。これPostAuthorizeRequest
は2回目に呼び出され(クライアントから開始されたのではなく、フィドラーで確認)、今回は最初に設定されたときに HttpContext.Current.User がnullです。
私はこの動作に気づいていなかったので、何が起こっているのか理解できません! 詳しい情報や適切な説明を持っている人はいますか?これに関連する方法を知っています:)?
それとも私が何か悪いことをしていますか?
編集:
問題は見つかりましたが、解決策ではありません。動作を引き起こしているのは、新しい System.Web.Handlers.TransferRequestHandler です。詳細については、http://blogs.msdn.com/b/tmarq/archive/2010/05/26/how-extensionless-urls-are-handled-by-asp-net-v4.aspxを参照してください。
最初のリクエストに対処しないと、認証が呼び出されない子リクエスト( StaticFileHandler への?)が発生するようですが、それでも私の PostAuthorizeRequest がトリガーされ、あらゆる種類の問題が発生します....コンテキスト(たとえば、Context.Items ) もリクエスト間でクリアされます。
この2番目の子リクエストを回避または検出する方法はありますか?