在asp.net mvc web api项目中的MessageHandlers与过滤器

时间:2013-02-24 13:54:50

标签: asp.net-mvc asp.net-web-api

使用MessageHandler与Filter检查MVC web api项目的请求标头中的API密钥有什么区别。

我看到http://www.asp.net/web-api/overview/working-with-http/http-message-handlers

中有一个用于此目的的MessageHandler的概述示例

e.g。

GlobalConfiguration.Configuration.MessageHandlers.Add(new ApiKeyHandler());

但看起来我也可以使用过滤器做同样的事情。

GlobalConfiguration.Configuration.Filters.Add(new ApiKeyFilter());

假设ApiKeyFilter和ApiKeyHandler都只是查看请求标头并检查api密钥,哪种方式更有效?有什么区别?

1 个答案:

答案 0 :(得分:6)

MessageHandlers的运行时间早于过滤器。

订单是:

-MessageHandler

- 授权过滤器

- 模型绑定

- 其他过滤器

安全相关的东西应该尽早运行。