コントローラの認可のカスタム属性があります。詳細はviewed hereです。ASP.NET MVCのコントローラ属性に基づいて、ビューモデルにエラーメッセージを追加します。
このカスタム属性がfalse
を返す場合は、ログイン画面に戻ります。属性がfalse
を返す場合は、ログイン画面のモデルにエラーを追加します。
アイデア?
コントローラの認可のカスタム属性があります。詳細はviewed hereです。ASP.NET MVCのコントローラ属性に基づいて、ビューモデルにエラーメッセージを追加します。
このカスタム属性がfalse
を返す場合は、ログイン画面に戻ります。属性がfalse
を返す場合は、ログイン画面のモデルにエラーを追加します。
アイデア?
は、ここで私はそれをやってしまった方法です:
protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
{
if (filterContext.HttpContext.User.Identity.IsAuthenticated)
{
var result = new ViewResult();
result.ViewName = "NotAuthorized";
result.MasterName = "_Layout";
filterContext.Result = result;
}
else
base.HandleUnauthorizedRequest(filterContext);
}
TempData機能を見てください。基本的には、ViewDataと似ていますが、次のリクエスト(セッションを使用)に繋がります。したがって、モデルエラーをここに保存して(必要に応じて適切にまとめてください)、ログインページアクションでリダイレクトした後にモデルエラーを探します。答えを探している人のために
これは、既存のSOの質問の重複のようになります。[カスタムメッセージとMVC 3 AuthorizeAttributeリダイレクト](HTTP ://stackoverflow.com/questions/5922838/mvc-3-authorizeattribute-redirect-with-custom-message) –