0

ログに記録された各ユーザーが特定のデータにアクセスできる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 の方が適切と思われます。

4

1 に答える 1

2

ステータス コードを設定するには、次を使用できます。

HttpContextBase.Response.StatusCode = 401;

ただし、MVC を使用している場合は、結果をHttpUnauthorizedResultに設定するだけで、http ステータス コードが設定されます。

于 2011-12-05T17:44:51.810 に答える