AuthorizeAttribute
MVC3 アプリケーションでグローバル認証用にから派生したクラスを使用しています。グローバルフィルターとして使用しますfilters.Add(new CtsAuthorizeAttribute());
カスタム ロール プロバイダーを実装したので、次のように、より具体的な承認フィルターをコントローラーに配置したいと考えています。
[CtsAuthorize(Roles = "systemadmin")]
public class CompanyController : CtsController
ロール ベースの認証エラーの場合はメッセージ ページにリダイレクトしたい (理想的には失敗したページのモデル プロパティを変更するだけ) が、ログイン ベースのエラーの場合はログイン ページへのデフォルトのリダイレクトを保持します。以下のオーバーライドで、認証失敗の理由をどのように判断できますか?
protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
{
base.HandleUnauthorizedRequest(filterContext);
}
「ロール内のユーザー」チェックを複製できますが、まさにこのフィルターによって実行されたばかりです。フィルターからこれを学習する方法がわかりません。