Изучение веб-API в рамках проекта MVC 4 в качестве альтернативного способа предоставления API на основе AJAX. Я расширил AuthorizeAttribute для контроллеров MVC, чтобы при обнаружении запроса AJAX возвращалась ошибка в формате JSON. Веб-API возвращает ошибки в виде HTML. Вот AuthorizeAttribute, который я использую с контроллерами MVC:
public class AuthorizeAttribute: System.Web.Mvc.AuthorizeAttribute
{
protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
{
base.HandleUnauthorizedRequest(filterContext);
filterContext.Result = new RedirectToRouteResult(
new RouteValueDictionary
{
{ "area", "" },
{ "controller", "Error" },
{ "action", ( filterContext.HttpContext.Request.IsAjaxRequest() ? "JsonHttp" : "Http" ) },
{ "id", "401" },
});
}
}
Как я могу воспроизвести это, чтобы обеспечить эквивалентную функциональность для веб-API?
Я понимаю, что мне нужно расширить System.Web.Http.AuthorizeAttribute вместо System.Web.Mvc.AuthorizeAttribute, но здесь используется HttpActionContext, а не AuthorizationContext, и поэтому я застрял из-за своих ограниченных знаний о веб-API и, казалось бы, неполного документация в MSDN.
Я даже прав, думая, что это будет правильный подход?
Был бы признателен за любое руководство.