我目前正在尝试在API进入控制器之前访问它的头,我想检查它是否包含特定的头。我一直在寻找一种方法来实现中间件或类似的东西,但我还没有找到任何好的方法来使用.net framework为Web API做这件事。我只找到了.NET核心的解决方案。我也想它的全局为我所有的控制器,以避免添加这样的东西是我的控制器的每一个方法:
(!Request.Headers.Contains(requiredHeader))
return StatusCode(HttpStatusCode.PreconditionFailed);
如果有人能在这件事上帮助我,我先谢谢你!
2条答案
按热度按时间5kgi1eie1#
也许您可以为所有控制器使用从Controller派生的基类,并添加和重写OnActionExecuting。
t3irkdon2#
像这样使用
DelegatingHandler
:并将其优先于其他注册到管道中: