ログに記録された各ユーザーが特定のデータにアクセスできるasp.net mvc3アプリケーションがあります。
たとえば、「ユーザー A」は「クライアント 1」にはアクセスできますが「クライアント 2」にはアクセスできません。「ユーザー B」は「クライアント 2」にはアクセスできますが「クライアント 1」にはアクセスできません。
ユーザー a が にアクセスするhttp://myApp/Clients/2
と、たとえば というカスタム例外がスローされますConfidentialityException
。
そこから、 にトラップできglobal.asax
Application_Error
ます。しかし、その時点から、何がベストプラクティスになるのだろうか:
- http 403 コードでエラー ページを返す (方法は?)
- エラーページを返すだけです。
- クラッシュさせてください。
- 他の提案?
私の好みのソリューションは最初のもの (401 のエラー ページ) ですが、Application_Error から http コードを設定する方法がわかりません。
編集
認証エラーではなく、機密性のため、ステータス コード 401 を 403 に変更しました。w3c によると、 403 の方が適切と思われます。