Переопределение Customer ActionFilterAttribute OnActionExecuting никогда не вызывалось

Я использую MVC4.

Я кодирую этот атрибут клиента, который наследуется от System.Web.Mvc.ActionFilterAttribute

public class AuthorizedAttribute : ActionFilterAttribute
{    
    public AccessLevel Threshold { get; set; }

    public AuthorizedAttribute()
    {
        Threshold = AccessLevel.Anonymous;
    }

    public AuthorizedAttribute(AccessLevel threshold)
    {
        Threshold = threshold;
    }

    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        //some actions
        base.OnActionExecuting(filterContext);
    }
}

И я использую его на действии Manage в моем UserController

public class UserController : Controller
{
    [HttpGet]
    [Authorized(AccessLevel.Administrator)]
    public ViewResult Manage()
    {
         return View();
    }
}

Я поставил точку останова в моем конструкторе атрибутов, в переопределенном методе OnActionExecuting и в моем UserController, и когда я вызываю URL-адрес действия через свой браузер в режиме отладки, срабатывает только моя точка останова контроллера, и я попадаю на страницу, даже если я не аутентифицирован. . Что я делаю не так ?

Заранее спасибо.


person MrGrabazu    schedule 13.07.2014    source источник


Ответы (2)


Ваш код должен работать. Возможно у вас проблемы с маршрутизацией и т.п.

person Sergey Boiko    schedule 13.07.2014
comment
Нет, моя маршрутизация хороша, моя точка останова в моих методах контроллера срабатывает, но не в моем атрибуте. - person MrGrabazu; 14.07.2014
comment
в этом случае я могу понять это, только если посмотрю на эту функциональность в проекте. - person Sergey Boiko; 14.07.2014
comment
Какую другую информацию вам нужно знать, если это нормально или нет? - person MrGrabazu; 14.07.2014

Похоже, я не был полностью в MVC 4, но почти в MVC 5. Мне просто нужно сделать небольшое обновление в моем web.config, чтобы решить мою проблему. Я нашел свое спасение здесь

person MrGrabazu    schedule 15.07.2014