Проблема в вызове действия после функции IActionFilter OnActionExecuting

Я использую функцию IActionFilter OnActionExecuting для некоторой проверки безопасности, но когда она вызывает ее, проверяет условие и если это условие не выполняется, я хочу перенаправить его на действие входа в систему, но проблема в том, что он также вызывает следующее действие, которое я не хочу выполнять если это условие не выполняется.

1 ответ

Решение

Это должно сделать работу:

public class MyCustomActionFilter : ActionFilterAttribute
{
    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        if (someCondition)
        {
            var values = new RouteValueDictionary(new { 
                action = "index",
                controller = "login"
            });
            filterContext.Result = new RedirectToRouteResult(values);
        }
        base.OnActionExecuting(filterContext);
    }
}

Убедитесь, что ваш атрибут является производным от ActionFilterAttribute.

Другие вопросы по тегам