gpt4 book ai didi

asp.net-mvc - 路由约束重定向

转载 作者:行者123 更新时间:2023-12-02 00:20:28 25 4
gpt4 key购买 nike

如果路由约束失败,我希望能够重定向,而不是仅仅返回 404。这是场景:

  • 用户点击页面www.test.com/preview/home/
  • 路由约束检查他们是否可以预览页面
  • 如果没有,重定向到 www.foo.com/home/

这可能吗?

最佳答案

这是可能的,但没有路线限制。路由约束不打算以这种方式使用。如果不满足路由约束,则路由不匹配。如果你想执行一些授权并在授权失败时重定向,你最好编写一个自定义授权属性并用它装饰你的 Controller 操作。

有两种可能性:

  1. 您想将自定义授权逻辑添加到现有属性。在这种情况下,您从 AuthorizeAttribute 派生并覆盖 AuthorizeCoreHandleUnauthorizedRequest 方法以执行自定义授权并在该逻辑失败时重定向(而不是导航到登录页面)。

  2. 您不需要任何基本功能。在这种情况下,您从 FilterAttribute 派生并实现 IAuthorizationFilter 接口(interface),并将您的授权和重定向逻辑放在 OnAuthorization 方法中。

下面是一个示例,说明如何在授权逻辑失败时使用您在任何地方都可以访问的 filterContext 进行重定向:

var values = new RouteValueDictionary(new
{
controller = "home",
action = "index"
});
filterContext.Result = new RedirectToRouteResult(values);

关于asp.net-mvc - 路由约束重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11187368/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com