Цикл перенаправления в OnActionExecuting - PullRequest
1 голос
/ 16 февраля 2012

Я пытаюсь направить пользователя на определенную страницу на моем сайте (VB, MVC4), когда данное условие ложно, но я продолжаю получать цикл перенаправления:

Error 310 (net::ERR_TOO_MANY_REDIRECTS): There were too many redirects.

Вот мой код:

Public Class UserValidation
    Inherits ActionFilterAttribute

    Public Overrides Sub OnActionExecuting(filterContext As System.Web.Mvc.ActionExecutingContext)

        If Not DoSomeInternalCheck() Then
            filterContext.Result =
                New RedirectToRouteResult(
                    New RouteValueDictionary() From {
                        {"controller", "Home"},
                        {"action", "MessagePage"}
                    }
                )
        End If

        MyBase.OnActionExecuting(filterContext)

    End Sub

End Class

Чего мне не хватает для того, чтобы пользователи не заходили на остальную часть сайта и чтобы они видели только эту страницу?

1 Ответ

7 голосов
/ 16 февраля 2012

Вам необходимо изменить этот фильтр, чтобы не перенаправлял пользователей, если они обращаются к домашней странице, на которую вы хотите перенаправить их!

Результат перенаправления отправляет их браузерусообщение с надписью «Перейти на этот другой URL вместо».Когда они переходят на этот другой URL-адрес, их запрос проходит через тот же фильтр, который говорит им: «Вместо этого перейдите на этот URL-адрес [тот же, что и раньше]».В конце концов браузер сдается и считает (правильно), что вы, вероятно, наткнулись на какой-то бесконечный цикл перенаправления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...