У меня есть метод, украшенный двумя пользовательскими ActionFilterAttribute.
[RequiresAuthentication(Order = 1)]
[ToonAction(Order = 2)]
public ActionResult Browse(...
RequiresAuthentication
атрибут исходит из этой статьи
Внутри RequiresAuthentication, на нем OnActionExecuting:
filterContext.HttpContext.Response.Redirect(loginUrl, true);
Строка выполняется, и аргументы все как ожидалось. Проблема в том, что после выполнения строки выше я получил следующий атрибут (ActionFilterAttribute), как если бы перенаправление не работало, он просто продолжает выполнение запроса, а не просто перенаправляет браузер.
Вопрос:, что еще нужно сделать, чтобы обработчик запроса
Это полный метод:
public override void OnActionExecuting(ActionExecutingContext filterContext) {
//redirect if not authenticated
var identity = filterContext.HttpContext.User.Identity;
if (!identity.IsAuthenticated) {
//use the current url for the redirect
string redirectOnSuccess = filterContext.HttpContext.Request.Url.PathAndQuery;
//send them off to the login page
string redirectUrl = string.Format("?ReturnUrl={0}", redirectOnSuccess);
string loginUrl = FormsAuthentication.LoginUrl + redirectUrl;
filterContext.HttpContext.Response.Redirect(loginUrl, true);
// filterContext.Result = new HttpUnauthorizedResult();
// filterContext.HttpContext.Response.StatusCode = 0x191;
}
}