私が開発しようとしているアプリケーションのフィルタの1つが、ユーザーが変更しようとしている項目を所有しているかどうかを確認します。アクションは[RequiresOwnership]
属性で装飾され、属性ロジック内ではユーザーがアイテムを所有しているかどうかを確認し、そうでなければUnauthorizedAccessException
を投げます。.NETのMVCでフィルタによってスローされた例外をキャッチする方法はありますか?
私の質問は次のとおりです。その例外をどこで捕まえることができますか?私は理想的には、例外ページを表示するのではなく、何をしようとしたのか許可されていない理由を説明するページにリダイレクトするのが理想的です。私は、属性によって装飾されたアクションの中で例外をキャッチするとは思わないので、.NET MVCモデルで上位にスローされた例外を処理できるアプリケーションの基本部分がありますか?
編集:フィルタ自体を介してページにリダイレクトすることはできますが、それは私にはちょっとハッキリなようです。属性を介して例外をスローするといいかもしれませんし、キャッチして処理できる標準的な場所が1つあります。
*「属性から例外をキャッチするのに便利な場所はありません」* @ GalacticCowboyの答えには何が間違っていますか? – seebiscuit