我正在构建一个MVC4应用程序,我有正常的MVC视图,并且我添加了一些WebAPI控制器。 我知道相应的控制器存在于不同的命名空间(System.Web.Mvc和System.Web.Http)。
所以,我想创建一个自定义控制器,它将捕获所有传入的调用(到网页和WebAPI),注册调用并执行授权,所有这些都在一个类中保持一致。
是否有MVC方法可以做到这一点? 如果使用1个自定义控制器无法做到这一点,还有其他方法吗?对于MVC应用程序,HttpModule是个好主意吗?
现在,我创建了2个类似的类,它们派生自: System.Web.Http.ApiController和 System.Web.Mvc.Controller 但似乎不是一个好主意,因为我差点复制代码。
答案 0 :(得分:0)
我认为对于这个pourpose来说,最好使用全局过滤器。 但是你需要稍微不同的Mvc和WebApi实现
在此处查看一些示例: How to add global ASP.Net Web Api Filters?
答案 1 :(得分:0)
实现此类功能的最简单方法是创建自定义HttpModule并使用Http Pipeline进行注册。
您可以找到对自定义HttpModule和注册流程here
的引用