限制用户跳跃控制器和动作方法

发布于 2024-09-11 03:45:13 字数 241 浏览 3 评论 0原文

各位:

我的 ASP.NET MVC 1.0 应用程序更像是一个工作流程。

含义:父控制器的动作方法(认证)-->子1 动作方法-->子2 动作方法-->子级操作

现在,一旦访问者通过父控制器的操作方法完成身份验证,他就可以操纵 URL 并直接跳转到子级 2 操作方法。 我们希望避免这种情况,在这种情况下我们希望它们出现错误页面。

我们如何实现限制用户从 1 跳转到另一个操作方法?

Folks:

My ASP.NET MVC 1.0 application is more like a workflow.

Means: Parent controller's action method (authentication) --> Child 1 Action method --> Child 2 Action method --> Child n Action

Now once the visitor completes the Authentication through the parent controller's action method he can manupulate the URL and jump directly to the child 2 action method.
We want to avoid this and in this case we want them to a error page.

How can we implement to restrict the user from jumpin from 1 to another action method ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

梦巷 2024-09-18 03:45:13

您可以使用 TempData 提供一些键,如果该值不存在,您可以将用户重定向回上一步。

或者,您可以使用 [HttpPost] 修饰后续操作方法,将每个 Form 操作设置为控制器中的下一个操作方法,并且这些操作对 不可用GET 请求。

You could use TempData providing some key and if that value isnt there, you could redirect the user back to the previous step.

Or you could decorate the subsequent action methods with [HttpPost], set each Form action to the next action method in the controller, and the actions wouldnt be available to GET requests.

山有枢 2024-09-18 03:45:13

将子操作方法设为私有,以便只能通过父操作访问它们。

[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。

Make your child action methods private so that they can only be accessed via the parent action.

[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 routes to Controller.Parent().

~/Controller/Child1 routes to 404: Not Found.
~/Controller/Child2 routes to 404: Not Found.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文