2013-08-19 4 views
5

私は認証のためのカスタムHttpModuleを持っています。モジュールのAuthenticateRequestイベントハンドラで、カスタムSSOチケットが利用可能かどうかをチェックし、その場合は認証ロジックを実行します。HttpModuleからMVCアプリケーションにエラーを渡す

SSOチケットが利用できますが、間違っている場合は、ユーザーにフレンドリーなエラーメッセージを表示したいと思います。私は何とかHTTP Status 401(認証が失敗したときに使用されるUnauthorized)を設定し、HTTPモジュールから意味のあるエラーメッセージを渡すことができるようにしたいと考えています。

MVCアプリケーションが何らかの形でこの情報を取得し、モジュールからの意味のあるエラーメッセージを含むカスタム401エラーページをレンダリングするのに使用したいと思います。

httpモジュールでエラーを発生させる最良の方法は何ですか?また、MVCアプリケーションを使用してエラーを表示する最良の方法は何ですか(MVCアプリケーションのレイアウトでエラーメッセージを表示するには)?

+0

これは良い質問です。 MVCの一部であるエラービューを返すことが目的の場合は、MVCフレームワーク/要求パイプラインの外部のエラーです。 – asymptoticFault

答えて

1

カスタムcontrollerfactoryを作成し、あなたにできます

protected override IController GetControllerInstance(RequestContext context, Type controllerType) 

あなたのコンテキストオブジェクトを介してのHttpContextとRouteDataにアクセスできるようになります。 ユーザが認証されていない場合は、希望のルーティング/制約(たとえば、httpステータスメッセージ)を使用して、目的のコントローラ/アクションを課金するようにroutedataを操作できます。

関連する問題