Невозможно перенаправить действие контроллера из переопределенного метода onactionexecuting.
Я должен ограничить доступ к определенному действию в контроллере, и поэтому я создал атрибут RestrictAccess, который реализует атрибут ActionFilterAttribute .
Ограничить доступ
public class RestrictAccess : ActionFilterAttribute { public override void OnActionExecuting(ActionExecutingContext filterContext) { filterContext.Result = new RedirectToRouteResult( new RouteValueDictionary {{ "Controller", "Test" }, { "Action", "RedirectToError" } }); base.OnActionExecuting(filterContext); } }
Во время отладки , после выполнения вышеуказанного кода он должен перенаправить и перейти к действию RedirectToError TestController. Но он не может перенаправить .
Тестовый Контроллер:
public ActionResult RedirectToError() { return View("AccessRestriction.cshtml"); }
Вместо этого я получаю эту ошибку ниже в браузере.
Конечная точка не найдена. Пожалуйста, обратитесь к справочной странице сервиса для построения допустимых запросов к сервису.
Может ли кто - нибудь помочь мне в этом?
Что я уже пробовал:
Я также пытался переопределить unauthorizedRequest. Все тот же вопрос.
public class RestrictAccess : AuthorizeAttribute { public override void HandleUnauthorizedRequest(AuthorizationContext filterContext) { UrlHelper urlHelper = new UrlHelper(filterContext.RequestContext); filterContext.Result = new RedirectResult(urlHelper.Action("Test", "RedirectToError")); } }