ограничить пользователя от прыжка контроллера и методов действия - PullRequest
0 голосов
/ 22 июля 2010

Повторю:

Мое приложение ASP.NET MVC 1.0 больше похоже на рабочий процесс.

Означает: метод действия родительского контроллера (аутентификация) -> метод дочернего действия 1 -> метод дочернего действия 2 -> дочерний процесс n

Теперь, когда посетитель завершает аутентификацию с помощью метода действия родительского контроллера, он может манипулировать URL-адресом и переходить непосредственно к дочернему методу действия 2. Мы хотим избежать этого, и в этом случае мы хотим, чтобы они перешли на страницу с ошибкой.

Как мы можем реализовать ограничение пользователя от перехода с 1 на другой метод действия?

Ответы [ 2 ]

2 голосов
/ 22 июля 2010

Вы можете использовать TempData, предоставляя какой-то ключ, и если этого значения нет, вы можете перенаправить пользователя обратно на предыдущий шаг.

Или вы можете декорировать последующие методы действия с помощью [HttpPost], установить каждый Form действие для следующего метода действия в контроллере, и действия не будут доступны для GET запросов.

0 голосов
/ 22 июля 2010

Сделайте ваши дочерние методы действия частными, чтобы к ним можно было получить доступ только через родительское действие.

[Authorize]
public ActionResult Parent(string color)
{
    if(color=="Red")
        return Child1();
    return Child2();
}

private ActionResult Child1()
{
    return View("this");
}

private ActionResult Child2()
{
    return View("that");
}

~ / Controller / Parent направляет в Controller.Parent ().

~ / Controller / Child1 маршруты до 404: не найдены.~ / Controller / Child2 маршруты до 404: не найдены.

...