IAuthorizationFilterを属性と組み合わせて、コントローラがそのコースを実行する前にユーザーがログインしているかどうかを確認することをお勧めしますか?ASP.Net MVC:IAuthorizationFilter /属性はログインのセキュリティチェックを優先しますか?
私はMVCを初めて使用しているので、私はWebFormsで行われた状況をどのように処理するかを理解しようとしています。私が昨日遭遇したのは、ログインしているかどうかによって、ユーザーがページを見ることができるかどうかを調べることです。私のプロジェクトを取り上げ、それをMVCプロジェクトに「変換」するとき、私はこの状況をどのように解決するかについて少し不安でした。 Webフォームバージョンで
は、私は、ユーザーがログインしたかどうかを確認するために、ベースページを使用:
if (State.CurrentUser == null)
{
State.ReturnPage = SiteMethods.GetCurrentUrl();
Response.Redirect(DEFAULT_LOGIN_REDIRECT);
}
私が見つけた何これです:
[AttributeUsage(AttributeTargets.Method)]
public sealed class RequiresAuthenticationAttribute : ActionFilterAttribute, IAuthorizationFilter
{
public void OnAuthorization(AuthorizationContext context)
{
if (State.CurrentUser == null)
{
context.Result =
new RedirectToRouteResult
(
"Login",
new RouteValueDictionary
(
new
{
controller = "Login",
action = "Error",
redirect = SiteMethods.GetCurrentUrl()
}
)
);
}
}
}
その後、私はちょうどその属性を平手打ちどんなコントローラー方法でも、人生は良いです。問題は、これを行うのが好ましい方法ですか、あるいは最良の方法ですか?
しかし、Authorize属性は何をしますか?役割メンバーシップ要件、またはカスタム認証HTTPヘッダーはどうですか? –