民间:
我的ASP.NET MVC 1.0应用程序更像是一个工作流程。
表示:父控制器的操作方法(认证) - >儿童1动作方法 - >儿童2动作方法 - >儿童行动
现在,一旦访问者通过父控制器的操作方法完成身份验证,他就可以对URL进行操作并直接跳转到子2操作方法。 我们希望避免这种情况,在这种情况下,我们希望它们成为错误页面。
我们如何实现限制用户从1跳转到另一个操作方法?
答案 0 :(得分:2)
您可以使用TempData提供一些密钥,如果该值不存在,您可以将用户重定向回上一步。
或者您可以使用[HttpPost]
修饰后续操作方法,将每个Form
操作设置为控制器中的下一个操作方法,这些操作将无法用于GET
个请求。< / p>
答案 1 :(得分:0)
将您的子操作方法设为私有,以便只能通过父操作访问它们。
[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:Not Found。 〜/ Controller / Child2路由到404:Not Found。