そのオーバーライドされた OnActionExecuting メソッドがあります(ユーザーがログインしているかどうかをアクションが実行される前に確認するため)
public class AuthenticationAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
if (!filterContext.HttpContext.User.Identity.IsAuthenticated)
{
string redirectUrl = string.Format("?returnUrl={0}", filterContext.HttpContext.Request.Url.PathAndQuery);
filterContext.HttpContext.Response.Redirect(FormsAuthentication.LoginUrl + redirectUrl, true);
}
else
base.OnActionExecuting(filterContext);
}
}
なぜ - ユーザーがログインしていない場合 - 応答はそのメソッドに再度リダイレクトされます。なんで ?