8

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

我看到在http://www.asp.net/web-api/overview/working-with-http/http-message-handlers中有一个很好的 MessageHandler 示例用于此目的

例如

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

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

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

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

4

1 回答 1

6

MessageHandlers 比过滤器运行得更早。

顺序是:

-MessageHandler

- 授权过滤器

-模型绑定

-其他过滤器

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

于 2013-02-24T14:55:11.990 回答