3
我想能如果路由约束失败重定向,而不是只返回一个404.这是该方案:路由约束重定向
- 用户点击页面www.test.com/preview/home/
- 路由约束检查他们是否可以预览页面
- 如果没有,重定向到www.foo.com/home/
这可能吗?
我想能如果路由约束失败重定向,而不是只返回一个404.这是该方案:路由约束重定向
这可能吗?
这是可能的,但没有路由约束。路线约束不打算以这种方式使用。如果路线约束不满足,则路线不匹配。如果你想执行一些授权和重定向,如果这个授权失败,你最好写一个自定义的授权属性,并用它来装饰你的控制器动作。
有以下两种方式:
你想定制授权逻辑添加到现有的属性。在这种情况下,您从AuthorizeAttribute派生并覆盖AuthorizeCore
和HandleUnauthorizedRequest
方法来执行自定义授权和重定向(而不是导航到登录页面)(如果此逻辑失败)。
您不想要任何基本功能。在这种情况下,您从FilterAttribute派生并实现IAuthorizationFilter
接口,并将您的可视化和重定向逻辑放入OnAuthorization
方法中。
下面是如何在授权逻辑使用,你必须到处访问filterContext失败重定向一个例子:
var values = new RouteValueDictionary(new
{
controller = "home",
action = "index"
});
filterContext.Result = new RedirectToRouteResult(values);