使用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密钥,哪种方式更有效?有什么区别?
答案 0 :(得分:6)
MessageHandlers的运行时间早于过滤器。
订单是:
-MessageHandler
- 授权过滤器
- 模型绑定
- 其他过滤器
安全相关的东西应该尽早运行。