Làm thế nào tôi có thể ngăn chặn thực hiện hành động/điều khiển mà không cần chuyển hướng, và chỉ trả lại phản ứng với statusCodeASP.NET MVC3 Dừng thực hiện hành động/điều khiển trong tùy chỉnh AuthorizeAttribute
public class MainAuthorizationFilter : AuthorizeAttribute
{
public override void OnAuthorization(AuthorizationContext filterContext)
{
... [my Authorization login] ...
if([Authorization fail])
{
if (filterContext.HttpContext.Request.IsAjaxRequest())
{
filterContext.HttpContext.Response.StatusCode = 401;
// HERE I want stop executing action/controller because I want return only statusCode
}
else
{
// In non-ajax request I just redirect me request and action/contoller isn't executed
filterContext.Result = new RedirectToRouteResult("Error", new RouteValueDictionary { { "errorCode", errorCode } });
}
}
}
base.OnAuthorization(filterContext);
}
[MainAuthorizationFilter]
public ActionResult CreateFolder(...)
{
CreateFolder(...);
}
301 được chuyển vĩnh viễn không thực sự có ý nghĩa ở đây - 401 không được phép sẽ có ý nghĩa hơn nhiều;) – Jon
@jon sry, 401 của khóa học –