限制除了神圣路线以外的所有路线

时间:2014-02-20 11:21:54

标签: c# asp.net-mvc asp.net-mvc-4 asp.net-mvc-routing

是的,这可能听起来很奇怪,但我们有第三方库,它支持JavaScript应用程序使用的某种服务。这个第三方库负责调用正确的控制器和操作。

这一切都很好但我们现在需要限制到这个“ServiceController”的路由,也许还有一两个其他控制器。在当前版本(MVC2)中,我们简单地覆盖控制器工厂,该工厂静态地检查有效的控制器。是的,它有效,但它更像是一种解决方法,然后永远留在那里。那么有没有任何干净的存档方式(通过配置路由?注意我们不使用authorize属性。我们将在下一个版本中使用MVC4)

1 个答案:

答案 0 :(得分:1)

添加全局过滤器并将逻辑放入OnActionExecuting(http://msdn.microsoft.com/en-us/library/gg416513(v=vs.98).aspx

选项1 :检查routeValues以获取正确的控制器和操作

var controllerName = filterContext.RouteData.Values["controller"];
var actionName = filterContext.RouteData.Values["action"];

选项2 :检查此值 Request.Url

实际上你只允许定义的路线而没有别的,所以这个问题确实有点奇怪。