MVC4 - 所有呼叫的自定义控制器(包括WebAPI)

时间:2017-06-07 10:54:43

标签: c# asp.net-mvc-4 asp.net-web-api

我正在构建一个MVC4应用程序,我有正常的MVC视图,并且我添加了一些WebAPI控制器。 我知道相应的控制器存在于不同的命名空间(System.Web.Mvc和System.Web.Http)。

所以,我想创建一个自定义控制器,它将捕获所有传入的调用(到网页和WebAPI),注册调用并执行授权,所有这些都在一个类中保持一致。

是否有MVC方法可以做到这一点? 如果使用1个自定义控制器无法做到这一点,还有其他方法吗?对于MVC应用程序,HttpModule是个好主意吗?

现在,我创建了2个类似的类,它们派生自: System.Web.Http.ApiController和 System.Web.Mvc.Controller 但似乎不是一个好主意,因为我差点复制代码。

2 个答案:

答案 0 :(得分:0)

我认为对于这个pourpose来说,最好使用全局过滤器。 但是你需要稍微不同的Mvc和WebApi实现

在此处查看一些示例: How to add global ASP.Net Web Api Filters?

答案 1 :(得分:0)

实现此类功能的最简单方法是创建自定义HttpModule并使用Http Pipeline进行注册。

您可以找到对自定义HttpModule和注册流程here

的引用