ASP.NET MVCの画像の保護(カスタムルートハンドラー付き)
-
30-09-2019 - |
質問
保護したい画像用のカスタムルートハンドラーを作成しました。私のRouteHandlerは、単に新しいルート(グラフィック/{Filename})を取り、真のファイルパスを検索し、Mimeタイプを設定し、それを提供します。それは正常に機能します。 (http://www.mikesdotnetting.com/article/126/asp.net-mvc-prevent-image-leeching-with-a-custom-routehandler)
次にやりたかったのは、画像を表示しようとしている人がそうする許可があることを確認するために、以前に設定するセッション変数について、カスタムハンドラー内でチェックを行うことでした。
基本的に、彼らはログイン(コードを入力する)に渡され、カスタムroutehandlerで探すセッション変数を設定します。
私の問題は、カスタムルートハンドラー内からセッションデータを取得できないように見えることです。
最後に、私の質問は次のとおりです。コントローラーにデータを設定し、後続のリクエストでカスタムルートハンドラー内から利用できるようにするにはどうすればよいですか?
解決
まず、requestContextからgethttphandlerメソッドに渡された場合、セッションにアクセスできませんか requestContext.HttpContext.Session
?確かではありません。パイプラインの早い段階であるため、デフォルトでこれが機能していないことがわかりました。
そうでない場合は、セッションのチェックロジックを常にハンドラーに簡単に移動できます。 iRequiressessionState ハンドラーへのインターフェース。